/** * Main serialization method that will delegate actual output to * configured * {@link BeanPropertyWriter} instances. */ @Override public final void serialize(Object bean, JsonGenerator gen, SerializerProvider provider) throws IOException { if (_objectIdWriter != null) { gen.setCurrentValue(bean); // [databind#631] _serializeWithObjectId(bean, gen, provider, true); return; } gen.writeStartObject(bean); if (_propertyFilterId != null) { serializeFieldsFiltered(bean, gen, provider); } else { serializeFields(bean, gen, provider); } gen.writeEndObject(); }
@Override public BeanSerializerBase withObjectIdWriter(ObjectIdWriter objectIdWriter) { return new BeanSerializer(this, objectIdWriter, _propertyFilterId); }
/** * Factory method for constructing an "empty" serializer; one that * outputs no properties (but handles JSON objects properly, including * type information) */ public BeanSerializer createDummy() { return BeanSerializer.createDummy(_beanDesc.getType()); } }
/** * Main serialization method that will delegate actual output to * configured * {@link BeanPropertyWriter} instances. */ @Override public final void serialize(Object bean, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { if (_objectIdWriter != null) { serializeWithObjectId(bean, jgen, provider); return; } jgen.writeStartObject(); if (_propertyFilterId != null) { serializeFieldsFiltered(bean, jgen, provider); } else { serializeFields(bean, jgen, provider); } jgen.writeEndObject(); }
@Override protected void serializeFields(Object bean, JsonGenerator jgen0, SerializerProvider provider) throws IOException { super.serializeFields(bean, jgen0, provider); Applications applications = (Applications) bean; if (applications.getVersion() != null) { jgen0.writeStringField(versionKey, Long.toString(applications.getVersion())); } if (applications.getAppsHashCode() != null) { jgen0.writeStringField(appsHashCodeKey, applications.getAppsHashCode()); } } }
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); // 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(); }
@Override public String toString() { return "BeanSerializer for "+handledType().getName(); } }
@Override protected void serializeFieldsFiltered(Object bean, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { serializeClassName(bean, jgen, provider); super.serializeFieldsFiltered(bean, jgen, provider); }
/** * Main serialization method that will delegate actual output to * configured * {@link BeanPropertyWriter} instances. */ @Override public final void serialize(Object bean, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { if (_objectIdWriter != null) { serializeWithObjectId(bean, jgen, provider); return; } jgen.writeStartObject(); if (_propertyFilterId != null) { serializeFieldsFiltered(bean, jgen, provider); } else { serializeFields(bean, jgen, provider); } jgen.writeEndObject(); }
@Override protected void serializeFields(Object bean, JsonGenerator jgen0, SerializerProvider provider) throws IOException { super.serializeFields(bean, jgen0, provider); InstanceInfo instanceInfo = (InstanceInfo) bean; jgen0.writeFieldName("port"); jgen0.writeStartObject(); jgen0.writeNumberField("$", instanceInfo.getPort()); jgen0.writeStringField("@enabled", Boolean.toString(instanceInfo.isPortEnabled(PortType.UNSECURE))); jgen0.writeEndObject(); jgen0.writeFieldName("securePort"); jgen0.writeStartObject(); jgen0.writeNumberField("$", instanceInfo.getSecurePort()); jgen0.writeStringField("@enabled", Boolean.toString(instanceInfo.isPortEnabled(PortType.SECURE))); jgen0.writeEndObject(); // Save @class field for backward compatibility. Remove once all clients are migrated to the new codec if (!compactMode) { jgen0.writeFieldName("metadata"); if (instanceInfo.getMetadata() == null || instanceInfo.getMetadata().isEmpty()) { stringMapObjectMapper.writeValue(jgen0, EMPTY_MAP); } else { stringMapObjectMapper.writeValue(jgen0, instanceInfo.getMetadata()); } } } }
serializeFieldsFiltered(bean, jgen, provider); } else { serializeFields(bean, jgen, provider);
@Override public String toString() { return "BeanSerializer for "+handledType().getName(); } }
@Override protected void serializeFieldsFiltered(Object bean, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { super.serializeFieldsFiltered(bean, jgen, provider); if (bean instanceof SupportsExtensionAttributes) { serializeExtensionAttributes((SupportsExtensionAttributes) bean, jgen, provider); } if (bean instanceof SupportsExtensionElements) { serializeExtensionElements((SupportsExtensionElements) bean, jgen, provider); } }
/** * Main serialization method that will delegate actual output to * configured * {@link BeanPropertyWriter} instances. */ @Override public final void serialize(Object bean, JsonGenerator gen, SerializerProvider provider) throws IOException { if (_objectIdWriter != null) { gen.setCurrentValue(bean); // [databind#631] _serializeWithObjectId(bean, gen, provider, true); return; } gen.writeStartObject(bean); if (_propertyFilterId != null) { serializeFieldsFiltered(bean, gen, provider); } else { serializeFields(bean, gen, provider); } gen.writeEndObject(); }
/** * Method for constructing dummy bean serializer; one that * never outputs any properties */ public static BeanSerializer createDummy(JavaType forType) { return new BeanSerializer(forType, null, NO_PROPS, null); }
@Override protected void serializeFields(Object bean, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { serializeClassName(bean, jgen, provider); super.serializeFields(bean, jgen, provider); }
/** * Factory method for constructing an "empty" serializer; one that * outputs no properties (but handles JSON objects properly, including * type information) */ public BeanSerializer createDummy() { return BeanSerializer.createDummy(_beanDesc.getType()); } }
@Override public String toString() { return "BeanSerializer for "+handledType().getName(); } }
/** * Main serialization method that will delegate actual output to * configured * {@link BeanPropertyWriter} instances. */ @Override public final void serialize(Object bean, JsonGenerator gen, SerializerProvider provider) throws IOException { if (_objectIdWriter != null) { _serializeWithObjectId(bean, gen, provider, true); return; } gen.writeStartObject(); // [databind#631]: Assign current value, to be accessible by custom serializers gen.setCurrentValue(bean); if (_propertyFilterId != null) { serializeFieldsFiltered(bean, gen, provider); } else { serializeFields(bean, gen, provider); } gen.writeEndObject(); }
@Override public BeanSerializerBase withFilterId(Object filterId) { return new BeanSerializer(this, _objectIdWriter, filterId); }