public final void _serializeWithObjectId(Object paramObject, JsonGenerator paramJsonGenerator, SerializerProvider paramSerializerProvider, boolean paramBoolean) { ObjectIdWriter localObjectIdWriter = this._objectIdWriter; WritableObjectId localWritableObjectId = paramSerializerProvider.findObjectId(paramObject, localObjectIdWriter.generator); if (localWritableObjectId.writeAsId(paramJsonGenerator, paramSerializerProvider, localObjectIdWriter)) return; Object localObject = localWritableObjectId.generateId(paramObject); if (localObjectIdWriter.alwaysAsId) { localObjectIdWriter.serializer.serialize(localObject, paramJsonGenerator, paramSerializerProvider); return; } if (paramBoolean) paramJsonGenerator.writeStartObject(); localWritableObjectId.writeAsField(paramJsonGenerator, paramSerializerProvider, localObjectIdWriter); if (this._propertyFilterId != null) serializeFieldsFiltered(paramObject, paramJsonGenerator, paramSerializerProvider); else serializeFields(paramObject, paramJsonGenerator, paramSerializerProvider); if (paramBoolean) paramJsonGenerator.writeEndObject(); }
protected final void _serializeWithObjectId(Object paramObject, JsonGenerator paramJsonGenerator, SerializerProvider paramSerializerProvider, TypeSerializer paramTypeSerializer) { ObjectIdWriter localObjectIdWriter = this._objectIdWriter; WritableObjectId localWritableObjectId = paramSerializerProvider.findObjectId(paramObject, localObjectIdWriter.generator); if (localWritableObjectId.writeAsId(paramJsonGenerator, paramSerializerProvider, localObjectIdWriter)) return; Object localObject = localWritableObjectId.generateId(paramObject); if (localObjectIdWriter.alwaysAsId) { localObjectIdWriter.serializer.serialize(localObject, paramJsonGenerator, paramSerializerProvider); return; } String str1; if (this._typeId == null) str1 = null; else str1 = _customTypeId(paramObject); String str2 = str1; if (str1 == null) paramTypeSerializer.writeTypePrefixForObject(paramObject, paramJsonGenerator); else paramTypeSerializer.writeCustomTypePrefixForObject(paramObject, paramJsonGenerator, str2); localWritableObjectId.writeAsField(paramJsonGenerator, paramSerializerProvider, localObjectIdWriter); if (this._propertyFilterId != null) serializeFieldsFiltered(paramObject, paramJsonGenerator, paramSerializerProvider); else serializeFields(paramObject, paramJsonGenerator, paramSerializerProvider); if (str2 == null) { paramTypeSerializer.writeTypeSuffixForObject(paramObject, paramJsonGenerator); return; } paramTypeSerializer.writeCustomTypeSuffixForObject(paramObject, paramJsonGenerator, str2); }
private final void serializeWithObjectId(Object bean, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { final ObjectIdWriter w = _objectIdWriter; WritableObjectId oid = provider.findObjectId(bean, w.generator); Object id = oid.id; if (id != null) { // have seen before; serialize just id oid.serializer.serialize(id, jgen, provider); return; } // if not, bit more work: oid.serializer = w.serializer; oid.id = id = oid.generator.generateId(bean); // possibly. Or maybe not: if (w.alwaysAsId) { oid.serializer.serialize(id, jgen, provider); return; } // If not, need to inject the id: jgen.writeStartObject(); SerializedString name = w.propertyName; if (name != null) { jgen.writeFieldName(name); w.serializer.serialize(id, jgen, provider); } if (_propertyFilterId != null) { serializeFieldsFiltered(bean, jgen, provider); } else { serializeFields(bean, jgen, provider); } jgen.writeEndObject(); }
public WritableObjectId findObjectId(Object paramObject, ObjectIdGenerator<?> paramObjectIdGenerator) { if (this._seenObjectIds == null) { this._seenObjectIds = new IdentityHashMap(); } else { WritableObjectId localWritableObjectId1 = (WritableObjectId)this._seenObjectIds.get(paramObject); if (localWritableObjectId1 != null) return localWritableObjectId1; } Object localObject; if (this._objectIdGenerators == null) { this._objectIdGenerators = new ArrayList(8); localObject = null; } else { int i = 0; int j = this._objectIdGenerators.size(); while (true) { localObject = null; if (i >= j) break; ObjectIdGenerator localObjectIdGenerator = (ObjectIdGenerator)this._objectIdGenerators.get(i); if (localObjectIdGenerator.canUseFor(paramObjectIdGenerator)) { localObject = localObjectIdGenerator; break; } i++; } } if (localObject == null) { localObject = paramObjectIdGenerator.newForSerialization(this); this._objectIdGenerators.add(localObject); } WritableObjectId localWritableObjectId2 = new WritableObjectId((ObjectIdGenerator)localObject); this._seenObjectIds.put(paramObject, localWritableObjectId2); return localWritableObjectId2; }
private final void _serializeWithObjectId(Object bean, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer) throws IOException, JsonGenerationException { final ObjectIdWriter w = _objectIdWriter; WritableObjectId oid = provider.findObjectId(bean, w.generator); Object id = oid.id; if (id != null) { // have seen before; serialize just id oid.serializer.serialize(id, jgen, provider); return; } // if not, bit more work: oid.serializer = w.serializer; oid.id = id = oid.generator.generateId(bean); String typeStr = (_typeId == null) ? null :_customTypeId(bean); if (typeStr == null) { typeSer.writeTypePrefixForObject(bean, jgen); } else { typeSer.writeCustomTypePrefixForObject(bean, jgen, typeStr); } // Very first thing: inject the id property SerializedString name = w.propertyName; if (name != null) { jgen.writeFieldName(name); w.serializer.serialize(id, jgen, provider); } if (_propertyFilterId != null) { serializeFieldsFiltered(bean, jgen, provider); } else { serializeFields(bean, jgen, provider); } if (typeStr == null) { typeSer.writeTypeSuffixForObject(bean, jgen); } else { typeSer.writeCustomTypeSuffixForObject(bean, jgen, typeStr); } }
public abstract WritableObjectId findObjectId(Object paramObject, ObjectIdGenerator<?> paramObjectIdGenerator);