public InternalTypeSerializer(Class<T> baseClass, TypeIdResolver typeIdResolver) { super(baseClass); this.typeSerializer = new AsPropertyTypeSerializer(typeIdResolver, null, TYPE_PROPERTY); }
@Override public void writeTypePrefixForObject(Object value, JsonGenerator jgen) throws IOException, JsonProcessingException { jgen.writeStartObject(); jgen.writeStringField(_typePropertyName, idFromValue(value)); }
@Override public void writeTypePrefixForObject(Object value, JsonGenerator jgen, Class<?> type) throws IOException, JsonProcessingException { jgen.writeStartObject(); jgen.writeStringField(_typePropertyName, idFromValueAndType(value, type)); }
@Override public WritableTypeId writeTypePrefix(JsonGenerator g, WritableTypeId idMetadata) throws IOException { return isWrapperType(idMetadata.forValue.getClass()) ? idMetadata : super.writeTypePrefix(g, idMetadata); }
@Override public void writeTypePrefixForObject(Object value, JsonGenerator jgen) throws IOException, JsonProcessingException { jgen.writeStartObject(); jgen.writeStringField(_typePropertyName, idFromValue(value)); }
@Override public void writeTypePrefixForObject(Object value, JsonGenerator jgen, Class<?> type) throws IOException, JsonProcessingException { jgen.writeStartObject(); jgen.writeStringField(_typePropertyName, idFromValueAndType(value, type)); }
@Override public AsPropertyTypeSerializer forProperty(BeanProperty prop) { return (_property == prop) ? this : new AsPropertyTypeSerializer(this._idResolver, prop, this._typePropertyName); }
@Override public void writeTypePrefixForObject(Object value, JsonGenerator jgen) throws IOException { final String typeId = idFromValue(value); if (typeId == null) { jgen.writeStartObject(); } else if (jgen.canWriteTypeId()) { jgen.writeTypeId(typeId); jgen.writeStartObject(); } else { jgen.writeStartObject(); jgen.writeStringField(_typePropertyName, typeId); } }
@Override public void writeTypePrefixForObject(Object value, JsonGenerator jgen, Class<?> type) throws IOException { final String typeId = idFromValueAndType(value, type); if (typeId == null) { jgen.writeStartObject(); } else if (jgen.canWriteTypeId()) { jgen.writeTypeId(typeId); jgen.writeStartObject(); } else { jgen.writeStartObject(); jgen.writeStringField(_typePropertyName, typeId); } }
@Override public TypeSerializer buildTypeSerializer(SerializationConfig config, JavaType baseType, Collection<NamedType> subtypes) { if (_idType != JsonTypeInfo.Id.CUSTOM || _includeAs != JsonTypeInfo.As.WRAPPER_OBJECT) { return super.buildTypeSerializer(config, baseType, subtypes); } TypeIdResolver idRes = new ValueReferenceTypeIdResolver(baseType, config.getTypeFactory(), subtypes); return new AsPropertyTypeSerializer(idRes, null, this._typeProperty); } }
@Override public void writeTypePrefixForObject(Object value, JsonGenerator jgen) throws IOException { final String typeId = idFromValue(value); if (typeId == null) { jgen.writeStartObject(); } else if (jgen.canWriteTypeId()) { jgen.writeTypeId(typeId); jgen.writeStartObject(); } else { jgen.writeStartObject(); jgen.writeStringField(_typePropertyName, typeId); } }
@Override public void writeTypePrefixForObject(Object value, JsonGenerator jgen, Class<?> type) throws IOException { final String typeId = idFromValueAndType(value, type); if (typeId == null) { jgen.writeStartObject(); } else if (jgen.canWriteTypeId()) { jgen.writeTypeId(typeId); jgen.writeStartObject(); } else { jgen.writeStartObject(); jgen.writeStringField(_typePropertyName, typeId); } }
@Override public TypeSerializer buildTypeSerializer(SerializationConfig config, JavaType baseType, Collection<NamedType> subtypes) { if (_idType == JsonTypeInfo.Id.NONE) { return null; } // 03-Oct-2016, tatu: As per [databind#1395] better prevent use for primitives, // regardless of setting if (baseType.isPrimitive()) { return null; } TypeIdResolver idRes = idResolver(config, baseType, subtypes, true, false); switch (_includeAs) { case WRAPPER_ARRAY: return new AsArrayTypeSerializer(idRes, null); case PROPERTY: return new AsPropertyTypeSerializer(idRes, null, _typeProperty); case WRAPPER_OBJECT: return new AsWrapperTypeSerializer(idRes, null); case EXTERNAL_PROPERTY: return new AsExternalTypeSerializer(idRes, null, _typeProperty); case EXISTING_PROPERTY: // as per [#528] return new AsExistingPropertyTypeSerializer(idRes, null, _typeProperty); } throw new IllegalStateException("Do not know how to construct standard type serializer for inclusion type: "+_includeAs); }
@Override public void writeTypePrefixForObject(Object value, JsonGenerator jgen) throws IOException { final String typeId = idFromValue(value); if (typeId == null) { jgen.writeStartObject(); } else if (jgen.canWriteTypeId()) { jgen.writeTypeId(typeId); jgen.writeStartObject(); } else { jgen.writeStartObject(); jgen.writeStringField(_typePropertyName, typeId); } }
@Override public void writeTypePrefixForObject(Object value, JsonGenerator jgen, Class<?> type) throws IOException { final String typeId = idFromValueAndType(value, type); if (typeId == null) { jgen.writeStartObject(); } else if (jgen.canWriteTypeId()) { jgen.writeTypeId(typeId); jgen.writeStartObject(); } else { jgen.writeStartObject(); jgen.writeStringField(_typePropertyName, typeId); } }
@Override public AsPropertyTypeSerializer forProperty(BeanProperty prop) { return (_property == prop) ? this : new AsPropertyTypeSerializer(this._idResolver, prop, this._typePropertyName); }
@Override public AsPropertyTypeSerializer forProperty(BeanProperty prop) { if (_property == prop) return this; return new AsPropertyTypeSerializer(this._idResolver, prop, this._typePropertyName); }
@Override public AsPropertyTypeSerializer forProperty(BeanProperty prop) { if (_property == prop) return this; return new AsPropertyTypeSerializer(this._idResolver, prop, this._typePropertyName); }
public InternalTypeSerializer(Class<T> baseClass, TypeIdResolver typeIdResolver) { super(baseClass); this.typeSerializer = new AsPropertyTypeSerializer(typeIdResolver, null, TYPE_PROPERTY); }
public InternalTypeSerializer(Class<T> baseClass, TypeIdResolver typeIdResolver) { super(baseClass); this.typeSerializer = new AsPropertyTypeSerializer(typeIdResolver, null, TYPE_PROPERTY); }