@Override public void setCurrentValue(Object v) { delegate.setCurrentValue(v); }
/** * Method for writing starting marker of a JSON Object value * (character '{'; plus possible white space decoration * if pretty-printing is enabled), to represent Java given * as the argument. Argument is offered as metadata, but more * importantly it should be assigned as the "current value" * for the Object content that gets constructed and initialized. *<p> * Object values can be written in any context where values * are allowed: meaning everywhere except for when * a field name is expected. * * @since 2.8. */ public void writeStartObject(Object forValue) throws IOException { writeStartObject(); setCurrentValue(forValue); }
@Override public void serialize(char[] value, JsonGenerator g, SerializerProvider provider) throws IOException { // [JACKSON-289] allows serializing as 'sparse' char array too: if (provider.isEnabled(SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS)) { g.writeStartArray(value.length); g.setCurrentValue(value); _writeArrayContents(g, value); g.writeEndArray(); } else { g.writeString(value, 0, value.length); } }
@Override public final void serialize(boolean[] value, JsonGenerator g, SerializerProvider provider) throws IOException { final int len = value.length; if ((len == 1) && _shouldUnwrapSingle(provider)) { serializeContents(value, g, provider); return; } g.writeStartArray(len); g.setCurrentValue(value); serializeContents(value, g, provider); g.writeEndArray(); }
private final void serializeContents(List<String> value, JsonGenerator g, SerializerProvider provider, int len) throws IOException { g.setCurrentValue(value); int i = 0; try { for (; i < len; ++i) { String str = value.get(i); if (str == null) { provider.defaultSerializeNull(g); } else { g.writeString(str); } } } catch (Exception e) { wrapAndThrow(provider, e, value, i); } } }
@Override public final void serialize(float[] value, JsonGenerator g, SerializerProvider provider) throws IOException { final int len = value.length; if ((len == 1) && _shouldUnwrapSingle(provider)) { serializeContents(value, g, provider); return; } g.writeStartArray(len); g.setCurrentValue(value); serializeContents(value, g, provider); g.writeEndArray(); }
@Override public final void serialize(short[] value, JsonGenerator g, SerializerProvider provider) throws IOException { final int len = value.length; if ((len == 1) && _shouldUnwrapSingle(provider)) { serializeContents(value, g, provider); return; } g.writeStartArray(len); g.setCurrentValue(value); serializeContents(value, g, provider); g.writeEndArray(); }
@Override public void serialize(Collection<String> value, JsonGenerator g, SerializerProvider provider) throws IOException { g.setCurrentValue(value); final int len = value.size(); if (len == 1) { if (((_unwrapSingle == null) && provider.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED)) || (_unwrapSingle == Boolean.TRUE)) { serializeContents(value, g, provider); return; } } g.writeStartArray(len); serializeContents(value, g, provider); g.writeEndArray(); }
@Override public void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException { if (provider.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED) && hasSingleElement(value)) { serializeContents(value, gen, provider); return; } gen.writeStartArray(); // [databind#631]: Assign current value, to be accessible by custom serializers gen.setCurrentValue(value); serializeContents(value, gen, provider); gen.writeEndArray(); }
@Override public void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException { if (_shouldUnwrapSingle(provider)) { if (hasSingleElement(value)) { serializeContents(value, gen, provider); return; } } gen.setCurrentValue(value); gen.writeStartArray(); // [databind#631]: Assign current value, to be accessible by custom serializers serializeContents(value, gen, provider); gen.writeEndArray(); }
@Override public final void serialize(double[] value, JsonGenerator g, SerializerProvider provider) throws IOException { final int len = value.length; if ((len == 1) && _shouldUnwrapSingle(provider)) { serializeContents(value, g, provider); return; } g.setCurrentValue(value); // 11-May-2016, tatu: As per [core#277] we have efficient `writeArray(...)` available g.writeArray(value, 0, value.length); }
@Override public final void serialize(int[] value, JsonGenerator g, SerializerProvider provider) throws IOException { final int len = value.length; if ((len == 1) && _shouldUnwrapSingle(provider)) { serializeContents(value, g, provider); return; } // 11-May-2016, tatu: As per [core#277] we have efficient `writeArray(...)` available g.setCurrentValue(value); g.writeArray(value, 0, value.length); }
@Override public final void serialize(long[] value, JsonGenerator g, SerializerProvider provider) throws IOException { final int len = value.length; if ((len == 1) && _shouldUnwrapSingle(provider)) { serializeContents(value, g, provider); return; } // 11-May-2016, tatu: As per [core#277] we have efficient `writeArray(...)` available g.setCurrentValue(value); g.writeArray(value, 0, value.length); }
@Override public void serializeWithType(Map.Entry<?, ?> value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer) throws IOException { // [databind#631]: Assign current value, to be accessible by custom serializers g.setCurrentValue(value); WritableTypeId typeIdDef = typeSer.writeTypePrefix(g, typeSer.typeId(value, JsonToken.START_OBJECT)); serializeDynamic(value, g, provider); typeSer.writeTypeSuffix(g, typeIdDef); }
@Override public void serializeWithType(Object bean, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer) throws IOException { if (_objectIdWriter != null) { gen.setCurrentValue(bean); // [databind#631] _serializeWithObjectId(bean, gen, provider, typeSer); return; } gen.setCurrentValue(bean); // [databind#631] WritableTypeId typeIdDef = _typeIdDef(typeSer, bean, JsonToken.START_OBJECT); typeSer.writeTypePrefix(gen, typeIdDef); if (_propertyFilterId != null) { serializeFieldsFiltered(bean, gen, provider); } else { serializeFields(bean, gen, provider); } typeSer.writeTypeSuffix(gen, typeIdDef); }
@Override public void serializeWithType(Collection<String> value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer) throws IOException { g.setCurrentValue(value); WritableTypeId typeIdDef = typeSer.writeTypePrefix(g, typeSer.typeId(value, JsonToken.START_ARRAY)); serializeContents(value, g, provider); typeSer.writeTypeSuffix(g, typeIdDef); }
@Override public final void serializeWithType(T value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer) throws IOException { // [databind#631]: Assign current value, to be accessible by custom serializers g.setCurrentValue(value); WritableTypeId typeIdDef = typeSer.writeTypePrefix(g, typeSer.typeId(value, JsonToken.START_ARRAY)); serializeContents(value, g, provider); typeSer.writeTypeSuffix(g, typeIdDef); }
@Override public void serializeWithType(T value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer) throws IOException { // [databind#631]: Assign current value, to be accessible by custom serializers g.setCurrentValue(value); WritableTypeId typeIdDef = typeSer.writeTypePrefix(g, typeSer.typeId(value, JsonToken.START_ARRAY)); serializeContents(value, g, provider); typeSer.writeTypeSuffix(g, typeIdDef); }
@Override public void serializeWithType(Object bean, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer) throws IOException { /* 10-Dec-2014, tatu: Not sure if this can be made to work reliably; * but for sure delegating to default implementation will not work. So: */ if (_objectIdWriter != null) { _serializeWithObjectId(bean, gen, provider, typeSer); return; } gen.setCurrentValue(bean); WritableTypeId typeIdDef = _typeIdDef(typeSer, bean, JsonToken.START_ARRAY); typeSer.writeTypePrefix(gen, typeIdDef); serializeAsArray(bean, gen, provider); typeSer.writeTypeSuffix(gen, typeIdDef); }
@Override public void serializeWithType(Object bean, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer) throws IOException { if (provider.isEnabled(SerializationFeature.FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS)) { provider.reportBadDefinition(handledType(), "Unwrapped property requires use of type information: cannot serialize without disabling `SerializationFeature.FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS`"); } gen.setCurrentValue(bean); // [databind#631] if (_objectIdWriter != null) { _serializeWithObjectId(bean, gen, provider, typeSer); return; } if (_propertyFilterId != null) { serializeFieldsFiltered(bean, gen, provider); } else { serializeFields(bean, gen, provider); } }