in lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/JsonEntitySerializer.java [51:133]
protected void doContainerSerialize(final ResWrap<Entity> container, final JsonGenerator jgen)
throws IOException, EdmPrimitiveTypeException {
final Entity entity = container.getPayload();
jgen.writeStartObject();
if (serverMode && !isODataMetadataNone) {
if (container.getContextURL() != null) {
jgen.writeStringField(Constants.JSON_CONTEXT, container.getContextURL().toASCIIString());
}
if (container.getMetadataETag() != null) {
jgen.writeStringField(Constants.JSON_METADATA_ETAG, container.getMetadataETag());
}
if (entity.getETag() != null) {
jgen.writeStringField(Constants.JSON_ETAG, entity.getETag());
}
}
if (entity.getType() != null && isODataMetadataFull) {
jgen.writeStringField(Constants.JSON_TYPE,
new EdmTypeInfo.Builder().setTypeExpression(entity.getType()).build().external());
}
if (entity.getId() != null && isODataMetadataFull) {
jgen.writeStringField(Constants.JSON_ID, entity.getId().toASCIIString());
}
for (Annotation annotation : entity.getAnnotations()) {
valuable(jgen, annotation, "@" + annotation.getTerm());
}
for (Property property : entity.getProperties()) {
valuable(jgen, property, property.getName());
}
if (serverMode && entity.getEditLink() != null &&
entity.getEditLink().getHref() != null && isODataMetadataFull) {
jgen.writeStringField(Constants.JSON_EDIT_LINK, entity.getEditLink().getHref());
if (entity.isMediaEntity() && isODataMetadataFull) {
jgen.writeStringField(Constants.JSON_MEDIA_READ_LINK,
entity.getEditLink().getHref() + "/$value");
}
}
if (!isODataMetadataNone) {
links(entity, jgen);
}
if (isODataMetadataFull) {
for (Link link : entity.getMediaEditLinks()) {
if (link.getTitle() == null) {
jgen.writeStringField(Constants.JSON_MEDIA_EDIT_LINK, link.getHref());
}
if (link.getInlineEntity() != null) {
jgen.writeObjectField(link.getTitle(), link.getInlineEntity());
}
if (link.getInlineEntitySet() != null) {
jgen.writeArrayFieldStart(link.getTitle());
for (Entity subEntry : link.getInlineEntitySet().getEntities()) {
jgen.writeObject(subEntry);
}
jgen.writeEndArray();
}
}
}
if (serverMode && isODataMetadataFull) {
for (Operation operation : entity.getOperations()) {
final String anchor = operation.getMetadataAnchor();
final int index = anchor.lastIndexOf('#');
jgen.writeObjectFieldStart('#' + anchor.substring(index < 0 ? 0 : (index + 1)));
jgen.writeStringField(Constants.ATTR_TITLE, operation.getTitle());
jgen.writeStringField(Constants.ATTR_TARGET, operation.getTarget().toASCIIString());
jgen.writeEndObject();
}
}
jgen.writeEndObject();
}