package com.bpedman.osgisample.entity.rest;
import com.bpedman.osgisample.entity.Node;
import com.bpedman.osgisample.entity.NodeService;
import javax.jws.WebService;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
/**
* User: bpedersen
* Date: 8/5/13
*/
@WebService
@Path("/")
public class NodeServiceRest {
private static NodeService nodeService;
public void setNodeService(NodeService nodeService) {
NodeServiceRest.nodeService = nodeService;
}
@GET
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public Response getNode(@PathParam("id") String id) {
Node node = nodeService.getNode(id);
if (node != null) {
return Response.ok(node).build();
} else {
return Response.status(Response.Status.NOT_FOUND).build();
}
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response addNode(Node node) {
return Response.ok(nodeService.addNode(node)).build();
}
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("{id}")
public Response updateNode(@PathParam("id") String id, Node node) {
return Response.ok(nodeService.updateNode(id, node)).build();
}
@DELETE
@Path("{id}")
public Response deleteNode(@PathParam("id") String id) {
nodeService.deleteNode(id);
return Response.noContent().build();
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public java.util.Collection<Node> getNodes() {
return nodeService.getNodes();
}
}