code: private final void serializeObjectNoSCO(Object v, ZooFieldDef def) {
          // Write class/null info
          if (v == null) {
              writeClassInfo(null, null);
              return;
          }
          
          //Persistent capable objects do not need to be serialized here.
          //If they should be serialized, then it will happen in serializeFields()
          Class<? extends Object> cls = v.getClass();
          writeClassInfo(cls, v);
  
          if (isPersistentCapable(cls)) {
              serializeOid(v);
              return;
          } else if (String.class == cls) {
          	String s = (String)v; 
          	out.writeString(s);
              return;
          } else if (Date.class == cls) {
              out.writeLong(((Date) v).getTime());
              return;
          } else if (GenericObject.class == cls) {
          	serializeOidGo((GenericObject) v);
          	return;
          }
          
          throw new IllegalArgumentException("Illegal class: " + cls + " from " + def);
      }
docs: Method for serializing data with constant size so that it can be stored in the object header
  where the field offsets are valid.