package com.tinkerpop.rexster.kibbles.sample;
import com.tinkerpop.blueprints.Edge;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.rexster.extension.ExtensionDefinition;
import com.tinkerpop.rexster.extension.ExtensionDescriptor;
import com.tinkerpop.rexster.extension.ExtensionNaming;
import com.tinkerpop.rexster.extension.ExtensionPoint;
import com.tinkerpop.rexster.extension.ExtensionResponse;
import com.tinkerpop.rexster.extension.RexsterContext;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
/**
* An extension that returns an XML representation of a vertex and an edge.
*/
@ExtensionNaming(name = ProducesXmlExtension.EXTENSION_NAME, namespace = AbstractSampleExtension.EXTENSION_NAMESPACE)
public class ProducesXmlExtension extends AbstractSampleExtension {
public static final String EXTENSION_NAME = "produces-xml";
/**
* Takes a vertex and converts the "standard" properties to XML.
*/
@ExtensionDefinition(extensionPoint = ExtensionPoint.VERTEX, produces = MediaType.APPLICATION_XML)
@ExtensionDescriptor(description = "returns standard properties of a vertex as XML.")
public ExtensionResponse doVertexToXml(@RexsterContext Vertex vertex) {
String xml = "<vertex><id>" + vertex.getId().toString() + "</id></vertex>";
return new ExtensionResponse(Response.ok(xml).build());
}
/**
* Takes a edge and converts the "standard" properties to XML.
*/
@ExtensionDefinition(extensionPoint = ExtensionPoint.EDGE, produces = MediaType.APPLICATION_XML)
@ExtensionDescriptor(description = "returns standard properties of an edge as XML.")
public ExtensionResponse doEdgeToXml(@RexsterContext Edge edge) {
String xml = "<edge><id>" + edge.getId().toString() + "</id><label>" + edge.getLabel() + "</label></edge>";
return new ExtensionResponse(Response.ok(xml).build());
}
}