From 0d90f8907b6d82cebcb96a96cc59d13f6cb26241 Mon Sep 17 00:00:00 2001 From: Andres Taylor Date: Mon, 28 Mar 2011 15:08:35 +0200 Subject: [PATCH] Started fixing the REST index stuff --- .../neo4j/rest/graphdb/index/RestIndex.java | 15 ++++++++--- .../rest/graphdb/index/RestNodeIndex.java | 25 ++++++++++++------- .../graph/neo4j/rest/RestNodeEntityTest.java | 10 +++----- .../src/test/resources/RestTest-context.xml | 2 +- 4 files changed, 32 insertions(+), 20 deletions(-) diff --git a/spring-data-neo4j-rest/src/main/java/org/neo4j/rest/graphdb/index/RestIndex.java b/spring-data-neo4j-rest/src/main/java/org/neo4j/rest/graphdb/index/RestIndex.java index 53b5f0a94..1aa963d68 100644 --- a/spring-data-neo4j-rest/src/main/java/org/neo4j/rest/graphdb/index/RestIndex.java +++ b/spring-data-neo4j-rest/src/main/java/org/neo4j/rest/graphdb/index/RestIndex.java @@ -21,7 +21,7 @@ import java.util.Map; * @since 24.01.11 */ public abstract class RestIndex implements Index { - private final RestRequest restRequest; + protected final RestRequest restRequest; private final String indexName; protected final RestGraphDatabase restGraphDatabase; @@ -44,13 +44,20 @@ public abstract class RestIndex implements Index restRequest.post( indexPath( key, value ), JsonHelper.createJsonFrom( uri ) ); } - private String indexPath( String key, Object value ) { - return "index/" + getTypeName() + "/" + indexName + "/" + RestRequest.encode( key ) + "/" + RestRequest.encode( value ); + protected String indexPath( ) { + return "index/" + getTypeName() + "/" + indexName; + } + + protected String indexPath( String key ) { + return indexPath() + "/" + RestRequest.encode( key ); + } + + protected String indexPath( String key, Object value ) { + return indexPath( key ) + "/" + RestRequest.encode( value ); } public void remove( T entity, String key, Object value ) { restRequest.delete( indexPath( key, value ) + "/" + ( (RestEntity) entity ).getId() ); - } public void remove(T entity, String key) { diff --git a/spring-data-neo4j-rest/src/main/java/org/neo4j/rest/graphdb/index/RestNodeIndex.java b/spring-data-neo4j-rest/src/main/java/org/neo4j/rest/graphdb/index/RestNodeIndex.java index 1c2a15380..d6e76d15f 100644 --- a/spring-data-neo4j-rest/src/main/java/org/neo4j/rest/graphdb/index/RestNodeIndex.java +++ b/spring-data-neo4j-rest/src/main/java/org/neo4j/rest/graphdb/index/RestNodeIndex.java @@ -9,26 +9,33 @@ import java.util.Map; /** * @author mh + * @author Andres Taylor * @since 24.01.11 */ -public class RestNodeIndex extends RestIndex { - public RestNodeIndex( RestRequest restRequest, String indexName, RestGraphDatabase restGraphDatabase ) { +public class RestNodeIndex extends RestIndex +{ + public RestNodeIndex( RestRequest restRequest, String indexName, RestGraphDatabase restGraphDatabase ) + { super( restRequest, indexName, restGraphDatabase ); } - public Class getEntityType() { + public Class getEntityType() + { return Node.class; } - public void remove(Node entity, String key) { - throw new UnsupportedOperationException(); + public void remove( Node entity, String key ) + { + restRequest.delete( indexPath( key ) ); } - public void remove(Node entity) { - throw new UnsupportedOperationException(); + public void remove( Node entity ) + { + restRequest.delete( indexPath() ); } - protected Node createEntity(Map item) { - return new RestNode((Map) item, restGraphDatabase); + protected Node createEntity( Map item ) + { + return new RestNode( (Map)item, restGraphDatabase ); } } diff --git a/spring-data-neo4j-rest/src/test/java/org/springframework/data/graph/neo4j/rest/RestNodeEntityTest.java b/spring-data-neo4j-rest/src/test/java/org/springframework/data/graph/neo4j/rest/RestNodeEntityTest.java index 37058e477..19a9f4a9d 100644 --- a/spring-data-neo4j-rest/src/test/java/org/springframework/data/graph/neo4j/rest/RestNodeEntityTest.java +++ b/spring-data-neo4j-rest/src/test/java/org/springframework/data/graph/neo4j/rest/RestNodeEntityTest.java @@ -1,9 +1,10 @@ package org.springframework.data.graph.neo4j.rest; -import org.apache.log4j.BasicConfigurator; -import org.junit.*; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.runner.RunWith; -import org.neo4j.rest.graphdb.RestGraphDatabase; import org.neo4j.rest.graphdb.RestTestBase; import org.springframework.data.graph.neo4j.support.NodeEntityTest; import org.springframework.test.context.CleanContextCacheTestExecutionListener; @@ -13,9 +14,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; import org.springframework.test.context.transaction.TransactionalTestExecutionListener; -import java.net.URI; -import java.net.URISyntaxException; - /** * @author mh * @since 28.03.11 diff --git a/spring-data-neo4j-rest/src/test/resources/RestTest-context.xml b/spring-data-neo4j-rest/src/test/resources/RestTest-context.xml index 59dcb4650..55a727d6f 100644 --- a/spring-data-neo4j-rest/src/test/resources/RestTest-context.xml +++ b/spring-data-neo4j-rest/src/test/resources/RestTest-context.xml @@ -15,6 +15,6 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> - +