Example usage for com.fasterxml.jackson.core JsonGenerator writeString

List of usage examples for com.fasterxml.jackson.core JsonGenerator writeString

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonGenerator writeString.

Prototype

public abstract void writeString(SerializableString text) throws IOException, JsonGenerationException;

Source Link

Document

Method similar to #writeString(String) , but that takes SerializableString which can make this potentially more efficient to call as generator may be able to reuse quoted and/or encoded representation.

Usage

From source file:org.apache.olingo.commons.core.serialization.JsonSerializer.java

protected void clientLinks(final Linked linked, final JsonGenerator jgen)
        throws IOException, EdmPrimitiveTypeException {

    final Map<String, List<String>> entitySetLinks = new HashMap<String, List<String>>();
    for (Link link : linked.getNavigationLinks()) {
        for (Annotation annotation : link.getAnnotations()) {
            valuable(jgen, annotation, link.getTitle() + "@" + annotation.getTerm());
        }// w w  w. jav  a  2s  .co m

        ODataLinkType type = null;
        try {
            type = ODataLinkType.fromString(version, link.getRel(), link.getType());
        } catch (IllegalArgumentException e) {
            // ignore
        }

        if (type == ODataLinkType.ENTITY_SET_NAVIGATION) {
            final List<String> uris;
            if (entitySetLinks.containsKey(link.getTitle())) {
                uris = entitySetLinks.get(link.getTitle());
            } else {
                uris = new ArrayList<String>();
                entitySetLinks.put(link.getTitle(), uris);
            }
            if (StringUtils.isNotBlank(link.getHref())) {
                uris.add(link.getHref());
            }
        } else {
            if (StringUtils.isNotBlank(link.getHref())) {
                jgen.writeStringField(link.getTitle() + Constants.JSON_BIND_LINK_SUFFIX, link.getHref());
            }
        }

        if (link.getInlineEntity() != null) {
            jgen.writeFieldName(link.getTitle());
            new JsonEntitySerializer(version, serverMode).doSerialize(link.getInlineEntity(), jgen);
        } else if (link.getInlineEntitySet() != null) {
            jgen.writeArrayFieldStart(link.getTitle());
            final JsonEntitySerializer entitySerializer = new JsonEntitySerializer(version, serverMode);
            for (Entity subEntry : link.getInlineEntitySet().getEntities()) {
                entitySerializer.doSerialize(subEntry, jgen);
            }
            jgen.writeEndArray();
        }
    }
    for (Map.Entry<String, List<String>> entitySetLink : entitySetLinks.entrySet()) {
        if (!entitySetLink.getValue().isEmpty()) {
            jgen.writeArrayFieldStart(entitySetLink.getKey() + Constants.JSON_BIND_LINK_SUFFIX);
            for (String uri : entitySetLink.getValue()) {
                jgen.writeString(uri);
            }
            jgen.writeEndArray();
        }
    }
}

From source file:io.swagger.inflector.processors.JsonNodeExampleSerializer.java

public void writeValue(JsonGenerator jgen, String field, Example o) throws IOException {
    if (o instanceof ArrayExample) {
        ArrayExample obj = (ArrayExample) o;
        jgen.writeArrayFieldStart(field);
        for (Example item : obj.getItems()) {
            if (item.getName() != null) {
                jgen.writeStartObject();
                writeTo(jgen, item);//from  w w w .  jav a2  s.  co m
                jgen.writeEndObject();
            } else {
                writeTo(jgen, item);
            }
        }
        jgen.writeEndArray();
    } else if (o instanceof BooleanExample) {
        BooleanExample obj = (BooleanExample) o;
        if (field != null) {
            jgen.writeBooleanField(field, obj.getValue());
        } else {
            jgen.writeBoolean(obj.getValue());
        }
    } else if (o instanceof DecimalExample) {
        DecimalExample obj = (DecimalExample) o;
        if (field != null) {
            jgen.writeNumberField(field, obj.getValue());
        } else {
            jgen.writeNumber(obj.getValue());
        }
    } else if (o instanceof DoubleExample) {
        DoubleExample obj = (DoubleExample) o;
        if (field != null) {
            jgen.writeNumberField(field, obj.getValue());
        } else {
            jgen.writeNumber(obj.getValue());
        }
    } else if (o instanceof FloatExample) {
        FloatExample obj = (FloatExample) o;
        if (field != null) {
            jgen.writeNumberField(field, obj.getValue());
        } else {
            jgen.writeNumber(obj.getValue());
        }
    } else if (o instanceof IntegerExample) {
        IntegerExample obj = (IntegerExample) o;
        if (field != null) {
            jgen.writeNumberField(field, obj.getValue());
        } else {
            jgen.writeNumber(obj.getValue());
        }
    } else if (o instanceof LongExample) {
        LongExample obj = (LongExample) o;
        if (field != null) {
            jgen.writeNumberField(field, obj.getValue());
        } else {
            jgen.writeNumber(obj.getValue());
        }
    } else if (o instanceof ObjectExample) {
        ObjectExample obj = (ObjectExample) o;
        if (field != null) {
            jgen.writeObjectField(field, obj);
        }
    } else if (o instanceof StringExample) {
        StringExample obj = (StringExample) o;
        if (field != null) {
            jgen.writeStringField(field, obj.getValue());
        } else {
            jgen.writeString(obj.getValue());
        }
    }
}

From source file:com.msopentech.odatajclient.engine.data.impl.JSONEntrySerializer.java

@Override
protected void doSerialize(final AbstractJSONEntry entry, final JsonGenerator jgen,
        final SerializerProvider provider) throws IOException, JsonProcessingException {

    jgen.writeStartObject();/*from   w w w . j  a  va 2 s  .c om*/

    if (entry.getMetadata() != null) {
        jgen.writeStringField(ODataConstants.JSON_METADATA, entry.getMetadata().toASCIIString());
    }
    if (StringUtils.isNotBlank(entry.getType())) {
        jgen.writeStringField(ODataConstants.JSON_TYPE, entry.getType());
    }
    if (entry.getId() != null) {
        jgen.writeStringField(ODataConstants.JSON_ID, entry.getId());
    }

    if (entry.getSelfLink() != null) {
        jgen.writeStringField(ODataConstants.JSON_READ_LINK, entry.getSelfLink().getHref());
    }

    if (entry.getEditLink() != null) {
        jgen.writeStringField(ODataConstants.JSON_EDIT_LINK, entry.getEditLink().getHref());
    }

    if (entry.getMediaContentSource() != null) {
        jgen.writeStringField(ODataConstants.JSON_MEDIAREAD_LINK, entry.getMediaContentSource());
    }
    if (entry.getMediaContentType() != null) {
        jgen.writeStringField(ODataConstants.JSON_MEDIA_CONTENT_TYPE, entry.getMediaContentType());
    }

    final Map<String, List<String>> entitySetLinks = new HashMap<String, List<String>>();

    for (JSONLink link : entry.getNavigationLinks()) {
        if (link.getInlineEntry() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineEntry());
        } else if (link.getInlineFeed() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineFeed());
        } else {
            ODataLinkType type = null;
            try {
                type = ODataLinkType.fromString(client, link.getRel(), link.getType());
            } catch (IllegalArgumentException e) {
                // ignore   
            }

            if (type == ODataLinkType.ENTITY_SET_NAVIGATION) {
                final List<String> uris;
                if (entitySetLinks.containsKey(link.getTitle())) {
                    uris = entitySetLinks.get(link.getTitle());
                } else {
                    uris = new ArrayList<String>();
                    entitySetLinks.put(link.getTitle(), uris);
                }
                uris.add(link.getHref());
            } else {
                jgen.writeStringField(link.getTitle() + ODataConstants.JSON_BIND_LINK_SUFFIX, link.getHref());
            }
        }
    }
    for (Map.Entry<String, List<String>> entitySetLink : entitySetLinks.entrySet()) {
        jgen.writeArrayFieldStart(entitySetLink.getKey() + ODataConstants.JSON_BIND_LINK_SUFFIX);
        for (String uri : entitySetLink.getValue()) {
            jgen.writeString(uri);
        }
        jgen.writeEndArray();
    }

    for (JSONLink link : entry.getMediaEditLinks()) {
        if (link.getTitle() == null) {
            jgen.writeStringField(ODataConstants.JSON_MEDIAEDIT_LINK, link.getHref());
        }

        if (link.getInlineEntry() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineEntry());
        }
        if (link.getInlineFeed() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineFeed());
        }
    }

    if (entry.getMediaEntryProperties() == null) {
        JSONDOMTreeUtils.writeSubtree(client, jgen, entry.getContent());
    } else {
        JSONDOMTreeUtils.writeSubtree(client, jgen, entry.getMediaEntryProperties());
    }

    jgen.writeEndObject();
}

From source file:com.msopentech.odatajclient.engine.data.json.JSONEntrySerializer.java

@Override
protected void doSerializeV3(AbstractJSONEntry<AbstractLinkResource<?, ?>> entry, JsonGenerator jgen,
        SerializerProvider provider) throws IOException, JsonProcessingException {
    jgen.writeStartObject();// w w w . j  a v a  2s.c  om

    if (entry.getMetadata() != null) {
        jgen.writeStringField(ODataConstants.JSON_METADATA, entry.getMetadata().toASCIIString());
    }
    if (StringUtils.isNotBlank(entry.getType())) {
        jgen.writeStringField(ODataConstants.JSON_TYPE, entry.getType());
    }
    if (entry.getId() != null) {
        jgen.writeStringField(ODataConstants.JSON_ID, entry.getId());
    }

    if (entry.getSelfLink() != null) {
        jgen.writeStringField(ODataConstants.JSON_READ_LINK, entry.getSelfLink().getHref());
    }

    if (entry.getEditLink() != null) {
        jgen.writeStringField(ODataConstants.JSON_EDIT_LINK, entry.getEditLink().getHref());
    }

    if (entry.getMediaContentSource() != null) {
        jgen.writeStringField(ODataConstants.JSON_MEDIAREAD_LINK, entry.getMediaContentSource());
    }
    if (entry.getMediaContentType() != null) {
        jgen.writeStringField(ODataConstants.JSON_MEDIA_CONTENT_TYPE, entry.getMediaContentType());
    }

    final Map<String, List<String>> entitySetLinks = new HashMap<String, List<String>>();

    for (AbstractLinkResource link : (List<? extends AbstractLinkResource<?, ?>>) entry.getNavigationLinks()) {
        if (link.getInlineEntry() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineEntry());
        } else if (link.getInlineFeed() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineFeed());
        } else {
            ODataLinkType type = null;
            try {
                type = ODataLinkType.fromString(link.getRel(), link.getType());
            } catch (IllegalArgumentException e) {
                // ignore
            }

            if (type == ODataLinkType.ENTITY_SET_NAVIGATION) {
                final List<String> uris;
                if (entitySetLinks.containsKey(link.getTitle())) {
                    uris = entitySetLinks.get(link.getTitle());
                } else {
                    uris = new ArrayList<String>();
                    entitySetLinks.put(link.getTitle(), uris);
                }
                uris.add(link.getHref());
            } else {
                jgen.writeStringField(link.getTitle() + ODataConstants.JSON_BIND_LINK_SUFFIX, link.getHref());
            }
        }
    }
    for (Map.Entry<String, List<String>> entitySetLink : entitySetLinks.entrySet()) {
        jgen.writeArrayFieldStart(entitySetLink.getKey() + ODataConstants.JSON_BIND_LINK_SUFFIX);
        for (String uri : entitySetLink.getValue()) {
            jgen.writeString(uri);
        }
        jgen.writeEndArray();
    }

    for (AbstractLinkResource link : (List<? extends AbstractLinkResource<?, ?>>) entry.getMediaEditLinks()) {
        if (link.getTitle() == null) {
            jgen.writeStringField(ODataConstants.JSON_MEDIAEDIT_LINK, link.getHref());
        }

        if (link.getInlineEntry() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineEntry());
        }
        if (link.getInlineFeed() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineFeed());
        }
    }

    if (entry.getMediaEntryProperties() == null) {
        DOMTreeUtils.writeSubtree(client, jgen, entry.getContent());
    } else {
        DOMTreeUtils.writeSubtree(client, jgen, entry.getMediaEntryProperties());
    }

    jgen.writeEndObject();
}

From source file:net.solarnetwork.web.support.JSONView.java

private void writeJsonValue(JsonGenerator json, String key, Object val, PropertyEditorRegistrar registrar)
        throws JsonGenerationException, IOException {
    if (val instanceof Collection<?> || (val != null && val.getClass().isArray())) {
        Collection<?> col;//w w w  . j av a2 s .c o m
        if (val instanceof Collection<?>) {
            col = (Collection<?>) val;
        } else if (!val.getClass().getComponentType().isPrimitive()) {
            col = Arrays.asList((Object[]) val);
        } else {
            // damn you, primitives
            col = getPrimitiveCollection(val);
        }
        if (key != null) {
            json.writeFieldName(key);
        }
        json.writeStartArray();
        for (Object colObj : col) {
            writeJsonValue(json, null, colObj, registrar);
        }

        json.writeEndArray();
    } else if (val instanceof Map<?, ?>) {
        if (key != null) {
            json.writeFieldName(key);
        }
        json.writeStartObject();
        for (Map.Entry<?, ?> me : ((Map<?, ?>) val).entrySet()) {
            Object propName = me.getKey();
            if (propName == null) {
                continue;
            }
            writeJsonValue(json, propName.toString(), me.getValue(), registrar);
        }
        json.writeEndObject();
    } else if (val instanceof Double) {
        if (key == null) {
            json.writeNumber((Double) val);
        } else {
            json.writeNumberField(key, (Double) val);
        }
    } else if (val instanceof Integer) {
        if (key == null) {
            json.writeNumber((Integer) val);
        } else {
            json.writeNumberField(key, (Integer) val);
        }
    } else if (val instanceof Short) {
        if (key == null) {
            json.writeNumber(((Short) val).intValue());
        } else {
            json.writeNumberField(key, ((Short) val).intValue());
        }
    } else if (val instanceof Float) {
        if (key == null) {
            json.writeNumber((Float) val);
        } else {
            json.writeNumberField(key, (Float) val);
        }
    } else if (val instanceof Long) {
        if (key == null) {
            json.writeNumber((Long) val);
        } else {
            json.writeNumberField(key, (Long) val);
        }
    } else if (val instanceof Boolean) {
        if (key == null) {
            json.writeBoolean((Boolean) val);
        } else {
            json.writeBooleanField(key, (Boolean) val);
        }
    } else if (val instanceof String) {
        if (key == null) {
            json.writeString((String) val);
        } else {
            json.writeStringField(key, (String) val);
        }
    } else {
        // create a JSON object from bean properties
        if (getPropertySerializerRegistrar() != null && val != null) {
            // try whole-bean serialization first
            Object o = getPropertySerializerRegistrar().serializeProperty(key, val.getClass(), val, val);
            if (o != val) {
                if (o != null) {
                    writeJsonValue(json, key, o, registrar);
                }
                return;
            }
        }
        generateJavaBeanObject(json, key, val, registrar);
    }
}

From source file:com.msopentech.odatajclient.engine.data.json.JSONEntrySerializer.java

@Override
protected void doSerializeV4(AbstractJSONEntry<AbstractLinkResource<?, ?>> entry, JsonGenerator jgen,
        SerializerProvider provider) throws IOException, JsonProcessingException {
    final String annotationPrefix = "@";

    jgen.writeStartObject();//from  w  w  w  .j  ava  2s  . c o  m

    if (entry.getMetadata() != null) {
        jgen.writeStringField(annotationPrefix + ODataConstants.JSON_METADATA,
                entry.getMetadata().toASCIIString());
    }
    if (StringUtils.isNotBlank(entry.getType())) {
        jgen.writeStringField(annotationPrefix + ODataConstants.JSON_TYPE, entry.getType());
    }
    if (entry.getId() != null) {
        jgen.writeStringField(annotationPrefix + ODataConstants.JSON_ID, entry.getId());
    }

    if (entry.getSelfLink() != null) {
        jgen.writeStringField(annotationPrefix + ODataConstants.JSON_READ_LINK, entry.getSelfLink().getHref());
    }

    if (entry.getEditLink() != null) {
        jgen.writeStringField(annotationPrefix + ODataConstants.JSON_EDIT_LINK, entry.getEditLink().getHref());
    }

    if (entry.getMediaContentSource() != null) {
        jgen.writeStringField(annotationPrefix + ODataConstants.JSON_MEDIAREAD_LINK,
                entry.getMediaContentSource());
    }
    if (entry.getMediaContentType() != null) {
        jgen.writeStringField(annotationPrefix + ODataConstants.JSON_MEDIA_CONTENT_TYPE,
                entry.getMediaContentType());
    }

    final Map<String, List<String>> entitySetLinks = new HashMap<String, List<String>>();

    for (AbstractLinkResource link : (List<? extends AbstractLinkResource<?, ?>>) entry.getNavigationLinks()) {
        if (link.getInlineEntry() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineEntry());
        } else if (link.getInlineFeed() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineFeed());
        } else {
            ODataLinkType type = null;
            try {
                type = ODataLinkType.fromString(link.getRel(), link.getType());
            } catch (IllegalArgumentException e) {
                // ignore
            }

            if (type == ODataLinkType.ENTITY_SET_NAVIGATION) {
                final List<String> uris;
                if (entitySetLinks.containsKey(link.getTitle())) {
                    uris = entitySetLinks.get(link.getTitle());
                } else {
                    uris = new ArrayList<String>();
                    entitySetLinks.put(link.getTitle(), uris);
                }
                uris.add(link.getHref());
            } else {
                jgen.writeStringField(link.getTitle() + ODataConstants.JSON_BIND_LINK_SUFFIX, link.getHref());
            }
        }
    }
    for (Map.Entry<String, List<String>> entitySetLink : entitySetLinks.entrySet()) {
        jgen.writeArrayFieldStart(entitySetLink.getKey() + ODataConstants.JSON_BIND_LINK_SUFFIX);
        for (String uri : entitySetLink.getValue()) {
            jgen.writeString(uri);
        }
        jgen.writeEndArray();
    }

    for (AbstractLinkResource link : (List<? extends AbstractLinkResource<?, ?>>) entry.getMediaEditLinks()) {
        if (link.getTitle() == null) {
            jgen.writeStringField(annotationPrefix + ODataConstants.JSON_MEDIAEDIT_LINK, link.getHref());
        }

        if (link.getInlineEntry() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineEntry());
        }
        if (link.getInlineFeed() != null) {
            jgen.writeObjectField(link.getTitle(), link.getInlineFeed());
        }
    }

    if (entry.getMediaEntryProperties() == null) {
        DOMTreeUtils.writeSubtree(client, jgen, entry.getContent());
    } else {
        DOMTreeUtils.writeSubtree(client, jgen, entry.getMediaEntryProperties());
    }

    jgen.writeEndObject();
}

From source file:org.codehaus.modello.plugin.jsonschema.JsonSchemaGenerator.java

private void writeClassDocumentation(JsonGenerator generator, ModelClass modelClass, boolean isRoot)
        throws IOException {
    if (!isRoot) {
        generator.writeObjectFieldStart(modelClass.getName());
    }// w w w. jav  a 2  s  .co  m

    generator.writeStringField("id", modelClass.getName() + '#');
    writeDescriptionField(generator, modelClass.getDescription());
    writeTypeField(generator, "object");

    generator.writeObjectFieldStart("properties");

    List<String> required = new LinkedList<String>();

    ModelClass reference = modelClass;
    // traverse the whole modelClass hierarchy to create the nested Builder instance
    while (reference != null) {
        // collect parameters and set them in the instance object
        for (ModelField modelField : reference.getFields(getGeneratedVersion())) {
            if (modelField.isRequired()) {
                required.add(modelField.getName());
            }

            // each field is represented as object
            generator.writeObjectFieldStart(modelField.getName());

            writeDescriptionField(generator, modelField.getDescription());

            if (modelField instanceof ModelAssociation) {
                ModelAssociation modelAssociation = (ModelAssociation) modelField;

                if (modelAssociation.isOneMultiplicity()) {
                    writeTypeField(generator, modelAssociation.getType());
                } else {
                    // MANY_MULTIPLICITY
                    writeTypeField(generator, "array");

                    generator.writeObjectFieldStart("items");

                    String type = modelAssociation.getType();
                    String toType = modelAssociation.getTo();

                    if (ModelDefault.LIST.equals(type) || ModelDefault.SET.equals(type)) {
                        writeTypeField(generator, toType);
                    } else {
                        // Map or Properties

                        writeTypeField(generator, "object");

                        generator.writeObjectFieldStart("properties");

                        XmlAssociationMetadata xmlAssociationMetadata = (XmlAssociationMetadata) modelAssociation
                                .getAssociationMetadata(XmlAssociationMetadata.ID);

                        if (xmlAssociationMetadata.isMapExplode()) {
                            // key
                            generator.writeObjectFieldStart("key");
                            writeTypeField(generator, "string");
                            generator.writeEndObject();

                            // value
                            generator.writeObjectFieldStart("value");
                            writeTypeField(generator, toType);
                            generator.writeEndObject();

                            // properties
                            generator.writeEndObject();

                            // required field
                            generator.writeArrayFieldStart("required");
                            generator.writeString("key");
                            generator.writeString("value");
                            generator.writeEndArray();
                        } else {
                            generator.writeObjectFieldStart("*");
                            writeTypeField(generator, toType);
                            generator.writeEndObject();
                        }
                    }

                    // items
                    generator.writeEndObject();
                }
            } else {
                writeTypeField(generator, modelField.getType());
            }

            generator.writeEndObject();
        }

        if (reference.hasSuperClass()) {
            reference = reference.getModel().getClass(reference.getSuperClass(), getGeneratedVersion());
        } else {
            reference = null;
        }
    }

    // end of `properties` element
    generator.writeEndObject();

    // write `required` sequence
    if (!required.isEmpty()) {
        generator.writeArrayFieldStart("required");

        for (String requiredField : required) {
            generator.writeString(requiredField);
        }

        generator.writeEndArray();
    }

    // end definition
    if (!isRoot) {
        generator.writeEndObject();
    }
}

From source file:org.apache.olingo.server.core.serializer.json.ODataJsonSerializer.java

protected void writePrimitiveValue(final String name, final EdmPrimitiveType type, final Object primitiveValue,
        final Boolean isNullable, final Integer maxLength, final Integer precision, final Integer scale,
        final Boolean isUnicode, final JsonGenerator json) throws EdmPrimitiveTypeException, IOException {
    final String value = type.valueToString(primitiveValue, isNullable, maxLength, precision, scale, isUnicode);
    if (value == null) {
        json.writeNull();// w w w . j ava 2  s .  c o  m
    } else if (type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean)) {
        json.writeBoolean(Boolean.parseBoolean(value));
    } else if (type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Byte)
            || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Double)
            || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Int16)
            || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Int32)
            || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.SByte)
            || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Single)
            || (type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Decimal)
                    || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Int64))
                    && !isIEEE754Compatible) {
        json.writeNumber(value);
    } else if (type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Stream)) {
        if (primitiveValue instanceof Link) {
            Link stream = (Link) primitiveValue;
            if (!isODataMetadataNone) {
                if (stream.getMediaETag() != null) {
                    json.writeStringField(name + constants.getMediaEtag(), stream.getMediaETag());
                }
                if (stream.getType() != null) {
                    json.writeStringField(name + constants.getMediaContentType(), stream.getType());
                }
            }
            if (isODataMetadataFull) {
                if (stream.getRel() != null && stream.getRel().equals(Constants.NS_MEDIA_READ_LINK_REL)) {
                    json.writeStringField(name + constants.getMediaReadLink(), stream.getHref());
                }
                if (stream.getRel() == null || stream.getRel().equals(Constants.NS_MEDIA_EDIT_LINK_REL)) {
                    json.writeStringField(name + constants.getMediaEditLink(), stream.getHref());
                }
            }
        }
    } else {
        json.writeString(value);
    }
}