package org.neo4j.smack.api; /** * @author mh * @since 05.12.11 */ public class TraversalService extends RestService { private static final String PATH_NODE_TRAVERSE = PATH_NODE + "/traverse/{returnType}"; private static final String PATH_NODE_PATH = PATH_NODE + "/path"; private static final String PATH_NODE_PATHS = PATH_NODE + "/paths"; public static final String PATH_TO_CREATE_PAGED_TRAVERSERS = PATH_NODE + "/paged/traverse/{returnType}"; public static final String PATH_TO_PAGED_TRAVERSERS = PATH_NODE + "/paged/traverse/{returnType}/{traverserId}"; public TraversalService(String dataPath) { super(dataPath); } // @POST // @Path(PATH_NODE_TRAVERSE) // @DeserializeWith(PropertyMapDeserializationStrategy.class) // //@SerializeWith(RepresentationSerializationStrategy.class) // public void traverse(Invocation invocation, Output result) throws Exception // { // final TraverserReturnType returnType = getReturnType(invocation); // result.ok(actionsFor(invocation).traverse(getNodeId(invocation), // readMap(invocation), returnType)); // } // // @DELETE // @Path(PATH_TO_PAGED_TRAVERSERS) // @DeserializeWith(PropertyMapDeserializationStrategy.class) // public void removePagedTraverser(Invocation invocation, Output result) // throws Exception // { // actionsFor(invocation).removePagedTraverse( // getParameter(invocation, "traverserId")); // result.ok(); // } // // @GET // @Path(PATH_TO_PAGED_TRAVERSERS) // @DeserializeWith(PropertyMapDeserializationStrategy.class) // //@SerializeWith(RepresentationSerializationStrategy.class) // public void pagedTraverse(Invocation invocation, Output result) // throws Exception // { // final TraverserReturnType returnType = getReturnType(invocation); // ListRepresentation traversalResult = actionsFor(invocation) // .pagedTraverse(getParameter(invocation, "traverserId"), // returnType); // result.okAt(invocation.getPath(), traversalResult); // } // // @POST // @Path(PATH_TO_CREATE_PAGED_TRAVERSERS) // @DeserializeWith(PropertyMapDeserializationStrategy.class) // //@SerializeWith(RepresentationSerializationStrategy.class) // public void createPagedTraverser(Invocation invocation, Output result) // throws Exception // { // final Long pageSize = getLongParameter(invocation, "pageSize", 50L); // validatePageSize(pageSize); // final Long leaseTimeInSeconds = getLongParameter(invocation, // "leaseTime", 60L); // validateLeaseTime(leaseTimeInSeconds); // final DatabaseActions actions = actionsFor(invocation); // String traverserId = actions.createPagedTraverser( // getNodeId(invocation), readMap(invocation), // pageSize.intValue(), leaseTimeInSeconds.intValue()); // final ListRepresentation pagedTraverseResult = actions.pagedTraverse( // traverserId, getReturnType(invocation)); // // result.okAt(invocation.getPath(), pagedTraverseResult); // } // // @POST // @Path(PATH_NODE_PATH) // @DeserializeWith(PropertyMapDeserializationStrategy.class) // //@SerializeWith(RepresentationSerializationStrategy.class) // public void singlePath(Invocation invocation, Output result) // throws Exception // { // @PathParam("getNodeId(invocation)") long startNode, String body // final Map<String, Object> data = readMap(invocation); // final long endNode = extractId(data.get("to")); // result.ok(actionsFor(invocation).findSinglePath(getNodeId(invocation), // endNode, data)); // } // // @POST // @Path(PATH_NODE_PATHS) // @DeserializeWith(PropertyMapDeserializationStrategy.class) // //@SerializeWith(RepresentationSerializationStrategy.class) // public void allPaths(Invocation invocation, Output result) throws Exception // { // @PathParam("getNodeId(invocation)") long startNode, String body // final Map<String, Object> description = readMap(invocation); // final long endNode = extractId(description.get("to")); // result.ok(actionsFor(invocation).findPaths(getNodeId(invocation), // endNode, description)); // } // // private TraverserReturnType getReturnType(Invocation invocation) // { // final String value = getParameter(invocation, "returnType"); // if (value == null) // return TraverserReturnType.node; // return TraverserReturnType.valueOf(value); // } // // private void validateLeaseTime(Long leaseTimeInSeconds) // throws BadInputException // { // if (leaseTimeInSeconds < 1) // throw new BadInputException( // "Lease time less than 1 second is not supported"); // } // // private void validatePageSize(Long pageSize) throws BadInputException // { // if (pageSize < 1) // throw new BadInputException( // "Page size less than 1 is not permitted"); // } }