package org.odata4j.format.jsonlite; import javax.ws.rs.core.UriInfo; import org.odata4j.format.SingleLink; import org.odata4j.format.json.JsonWriter; /** * The Class JsonLiteSingleLinkFormatWriter. * * @author <a href="mailto:rajni.kumari@synerzip.com">Rajni Kumari</a> */ public class JsonLiteSingleLinkFormatWriter extends JsonLiteFormatWriter<SingleLink> { private final String metadataType; public JsonLiteSingleLinkFormatWriter(String jsonpCallback, String metadataType) { super(jsonpCallback, metadataType); this.metadataType = metadataType; } @Override protected void writeContent(UriInfo uriInfo, JsonWriter jw, SingleLink link) { if (metadataType != null && !metadataType.equalsIgnoreCase(OdataJsonLiteConstant.METADATA_TYPE_NOMETADATA)) { jw.writeName(OdataJsonLiteConstant.METADATA_PROPERTY); jw.writeString(uriInfo.getBaseUri() + OdataJsonLiteConstant.METADATA_PROPERTY_WITH_HASH_DOLLAR + link.getSourceEntity().getEntitySetName() + "/$links/" + link.getTargetNavProp()); jw.writeSeparator(); } writeUri(jw, link); } static void writeUri(JsonWriter jw, SingleLink link) { /*{ "odata.metadata": "http://.../Soupon.svc/$metadata#Users/$links/ReferredBy", "url": "http://.../Soupon.svc/Users('pilack')" }*/ jw.writeName("url"); jw.writeString(link.getUri()); } }