package org.odata4j.format.jsonlite;
import javax.ws.rs.core.UriInfo;
import org.odata4j.format.SingleLink;
import org.odata4j.format.SingleLinks;
import org.odata4j.format.json.JsonWriter;
/**
* The Class JsonLiteSingleLinksFormatWriter.
*
* @author <a href="mailto:rajni.kumari@synerzip.com">Rajni Kumari</a>
*/
public class JsonLiteSingleLinksFormatWriter extends JsonLiteFormatWriter<SingleLinks> {
private final String metadataType;
public JsonLiteSingleLinksFormatWriter(String jsonpCallback, String metadataType) {
super(jsonpCallback, metadataType);
this.metadataType = metadataType;
}
@Override
protected void writeContent(UriInfo uriInfo, JsonWriter jw, SingleLinks links) {
if (metadataType != null && !metadataType.equalsIgnoreCase(OdataJsonLiteConstant.METADATA_TYPE_NOMETADATA)) {
jw.writeName(OdataJsonLiteConstant.METADATA_PROPERTY);
jw.writeString(uriInfo.getBaseUri() + OdataJsonLiteConstant.METADATA_PROPERTY_WITH_HASH_DOLLAR + links.getSourceEntity().getEntitySetName() + "/$links/" + links.getTargetNavProp());
jw.writeSeparator();
}
jw.writeName(OdataJsonLiteConstant.VALUE_PROPERTY);
jw.startArray();
boolean isFirst = true;
for (SingleLink link : links) {
if (!isFirst)
jw.writeSeparator();
else
isFirst = false;
jw.startObject();
JsonLiteSingleLinkFormatWriter.writeUri(jw, link);
jw.endObject();
}
jw.endArray();
}
}