Renamed NodeTypeStrategy to TypeRepresentationStrategy
This commit is contained in:
@@ -18,7 +18,7 @@ log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
|
||||
|
||||
|
||||
log4j.category.org.springframework=WARN
|
||||
#log4j.category.org.springframework.data.graph.neo4j.support.SubReferenceNodeTypeStrategy=DEBUG
|
||||
#log4j.category.org.springframework.data.graph.neo4j.support.SubReferenceTypeRepresentationStrategy=DEBUG
|
||||
#log4j.category.org.springframework.data.graph.neo4j.fieldaccess=DEBUG
|
||||
#log4j.category.org.springframework.data=TRACE
|
||||
#log4j.category.org.springframework.data.support=TRACE
|
||||
|
||||
@@ -97,10 +97,10 @@
|
||||
<property name="conversionService">
|
||||
<bean class="org.springframework.data.graph.neo4j.fieldaccess.Neo4jConversionServiceFactoryBean"/>
|
||||
</property>
|
||||
<property name="nodeTypeStrategy" ref="nodeTypeStrategy"/>
|
||||
<property name="typeRepresentationStrategy" ref="typeRepresentationStrategy"/>
|
||||
</bean>
|
||||
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.NodeTypeStrategyFactoryBean">
|
||||
<bean id="typeRepresentationStrategy" class="org.springframework.data.graph.neo4j.support.NodeTypeStrategyFactoryBean">
|
||||
<constructor-arg ref="graphDatabaseService"/>
|
||||
<constructor-arg ref="graphEntityInstantiator"/>
|
||||
</bean>
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package org.springframework.data.graph.core;
|
||||
|
||||
import org.neo4j.graphdb.Node;
|
||||
import org.springframework.data.graph.core.NodeBacked;
|
||||
|
||||
/**
|
||||
* Strategy to handle representation of java types in the graph. Possible implementation are type/class nodes
|
||||
@@ -30,7 +29,7 @@ import org.springframework.data.graph.core.NodeBacked;
|
||||
* @author Michael Hunger
|
||||
* @since 13.09.2010
|
||||
*/
|
||||
public interface NodeTypeStrategy {
|
||||
public interface TypeRepresentationStrategy {
|
||||
/**
|
||||
* callback on entity creation for setting up type representation
|
||||
* @param entity
|
||||
@@ -95,7 +95,7 @@ public class Neo4jConfiguration {
|
||||
gdc.setGraphEntityInstantiator(graphEntityInstantiator);
|
||||
gdc.setConversionService(conversionService());
|
||||
NodeTypeStrategyFactoryBean nodeTypeStrategyFactoryBean = new NodeTypeStrategyFactoryBean(graphDatabaseService, graphEntityInstantiator);
|
||||
gdc.setNodeTypeStrategy(nodeTypeStrategyFactoryBean.getObject());
|
||||
gdc.setTypeRepresentationStrategy(nodeTypeStrategyFactoryBean.getObject());
|
||||
if (validator!=null) {
|
||||
gdc.setValidator(validator);
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.springframework.data.graph.neo4j.support.GraphDatabaseContext;
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* Repository like finder for Node and Relationship-Entities. Provides finder methods for direct access, access via {@link org.springframework.data.graph.core.NodeTypeStrategy}
|
||||
* Repository like finder for Node and Relationship-Entities. Provides finder methods for direct access, access via {@link org.springframework.data.graph.core.TypeRepresentationStrategy}
|
||||
* and indexing.
|
||||
*
|
||||
* @param <T> GraphBacked target of this finder, enables the finder methods to return this concrete type
|
||||
|
||||
@@ -27,7 +27,7 @@ import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.data.annotation.Indexed;
|
||||
import org.springframework.data.graph.core.GraphBacked;
|
||||
import org.springframework.data.graph.core.NodeBacked;
|
||||
import org.springframework.data.graph.core.NodeTypeStrategy;
|
||||
import org.springframework.data.graph.core.TypeRepresentationStrategy;
|
||||
import org.springframework.data.graph.core.RelationshipBacked;
|
||||
import org.springframework.data.persistence.EntityInstantiator;
|
||||
|
||||
@@ -39,7 +39,7 @@ import java.util.Map;
|
||||
|
||||
/**
|
||||
* Mediator class for the graph related services like the {@link GraphDatabaseService}, the used
|
||||
* {@link NodeTypeStrategy}, entity instantiators for nodes and relationships as well as a spring conversion service.
|
||||
* {@link org.springframework.data.graph.core.TypeRepresentationStrategy}, entity instantiators for nodes and relationships as well as a spring conversion service.
|
||||
*
|
||||
* It delegates the appropriate methods to those services. The services are not intended to be accessible from outside.
|
||||
*
|
||||
@@ -59,7 +59,7 @@ public class GraphDatabaseContext {
|
||||
|
||||
private ConversionService conversionService;
|
||||
|
||||
private NodeTypeStrategy nodeTypeStrategy;
|
||||
private TypeRepresentationStrategy typeRepresentationStrategy;
|
||||
|
||||
private Validator validator;
|
||||
|
||||
@@ -99,12 +99,12 @@ public class GraphDatabaseContext {
|
||||
this.conversionService = conversionService;
|
||||
}
|
||||
|
||||
public NodeTypeStrategy getNodeTypeStrategy() {
|
||||
return nodeTypeStrategy;
|
||||
public TypeRepresentationStrategy getTypeRepresentationStrategy() {
|
||||
return typeRepresentationStrategy;
|
||||
}
|
||||
|
||||
public void setNodeTypeStrategy(NodeTypeStrategy nodeTypeStrategy) {
|
||||
this.nodeTypeStrategy = nodeTypeStrategy;
|
||||
public void setTypeRepresentationStrategy(TypeRepresentationStrategy typeRepresentationStrategy) {
|
||||
this.typeRepresentationStrategy = typeRepresentationStrategy;
|
||||
}
|
||||
|
||||
public Node createNode() {
|
||||
@@ -139,7 +139,7 @@ public class GraphDatabaseContext {
|
||||
public void removeNodeEntity(NodeBacked entity) {
|
||||
Node node = entity.getPersistentState();
|
||||
if (node==null) return;
|
||||
this.nodeTypeStrategy.preEntityRemoval(entity);
|
||||
this.typeRepresentationStrategy.preEntityRemoval(entity);
|
||||
for (Relationship relationship : node.getRelationships()) {
|
||||
removeRelationship(relationship);
|
||||
}
|
||||
@@ -171,7 +171,7 @@ public class GraphDatabaseContext {
|
||||
public <S, T extends GraphBacked> T createEntityFromState(final S state, final Class<T> type) {
|
||||
if (state==null) throw new IllegalArgumentException("state has to be either a Node or Relationship, not null");
|
||||
if (state instanceof Node)
|
||||
return (T) graphEntityInstantiator.createEntityFromState((Node) state, nodeTypeStrategy.confirmType((Node)state, (Class<? extends NodeBacked>)type));
|
||||
return (T) graphEntityInstantiator.createEntityFromState((Node) state, typeRepresentationStrategy.confirmType((Node)state, (Class<? extends NodeBacked>)type));
|
||||
else
|
||||
return (T) relationshipEntityInstantiator.createEntityFromState((Relationship) state, (Class<? extends RelationshipBacked>) type);
|
||||
}
|
||||
@@ -214,15 +214,15 @@ public class GraphDatabaseContext {
|
||||
}
|
||||
|
||||
/**
|
||||
* delegates to the configured @{link NodeTypeStrategy} for after entity creation operations
|
||||
* delegates to the configured @{link TypeRepresentationStrategy} for after entity creation operations
|
||||
* @param entity
|
||||
*/
|
||||
public void postEntityCreation(final NodeBacked entity) {
|
||||
nodeTypeStrategy.postEntityCreation(entity);
|
||||
typeRepresentationStrategy.postEntityCreation(entity);
|
||||
}
|
||||
|
||||
/**
|
||||
* delegates to the configured @{link NodeTypeStrategy} to iterate over all instances of this type
|
||||
* delegates to the configured @{link TypeRepresentationStrategy} to iterate over all instances of this type
|
||||
* @param clazz type of entity
|
||||
* @param <T>
|
||||
* @return
|
||||
@@ -230,7 +230,7 @@ public class GraphDatabaseContext {
|
||||
*/
|
||||
public <T extends GraphBacked> Iterable<T> findAll(final Class<T> clazz) {
|
||||
if (!checkIsNodeBacked(clazz)) throw new UnsupportedOperationException("No support for relationships");
|
||||
return (Iterable<T>) nodeTypeStrategy.findAll((Class<NodeBacked>)clazz);
|
||||
return (Iterable<T>) typeRepresentationStrategy.findAll((Class<NodeBacked>)clazz);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -241,24 +241,24 @@ public class GraphDatabaseContext {
|
||||
}
|
||||
|
||||
/**
|
||||
* delegates to the configured @{link NodeTypeStrategy} for a count of all instances of this type
|
||||
* delegates to the configured @{link TypeRepresentationStrategy} for a count of all instances of this type
|
||||
* @param entityClass
|
||||
* @return count of all instances
|
||||
*/
|
||||
public long count(final Class<? extends GraphBacked> entityClass) {
|
||||
if (!checkIsNodeBacked(entityClass)) throw new UnsupportedOperationException("No support for relationships");
|
||||
return nodeTypeStrategy.count((Class<NodeBacked>)entityClass);
|
||||
return typeRepresentationStrategy.count((Class<NodeBacked>)entityClass);
|
||||
}
|
||||
|
||||
/**
|
||||
* delegates to the configured @{link NodeTypeStrategy} to lookup the type information for the given node
|
||||
* delegates to the configured @{link TypeRepresentationStrategy} to lookup the type information for the given node
|
||||
* @param node
|
||||
* @param <T>
|
||||
* @return entity type of the node
|
||||
* @throws IllegalStateException for nodes that are not instance backing nodes of a known type
|
||||
*/
|
||||
public <T extends NodeBacked> Class<T> getJavaType(final Node node) {
|
||||
return nodeTypeStrategy.getJavaType(node);
|
||||
return typeRepresentationStrategy.getJavaType(node);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -327,7 +327,7 @@ public class GraphDatabaseContext {
|
||||
}
|
||||
|
||||
public <T extends NodeBacked> T createEntityFromStoredType(Node node) {
|
||||
return (T)graphEntityInstantiator.createEntityFromState(node,nodeTypeStrategy.<NodeBacked>getJavaType(node));
|
||||
return (T)graphEntityInstantiator.createEntityFromState(node, typeRepresentationStrategy.<NodeBacked>getJavaType(node));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,13 +10,13 @@ import org.neo4j.helpers.collection.FilteringIterable;
|
||||
import org.neo4j.helpers.collection.IterableWrapper;
|
||||
import org.springframework.data.graph.annotation.NodeEntity;
|
||||
import org.springframework.data.graph.core.NodeBacked;
|
||||
import org.springframework.data.graph.core.NodeTypeStrategy;
|
||||
import org.springframework.data.graph.core.TypeRepresentationStrategy;
|
||||
import org.springframework.data.persistence.EntityInstantiator;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class IndexingNodeTypeStrategy implements NodeTypeStrategy {
|
||||
public class IndexingTypeRepresentationStrategy implements TypeRepresentationStrategy {
|
||||
|
||||
public static final String NODE_INDEX_NAME = "__types__";
|
||||
public static final String TYPE_PROPERTY_NAME = "__type__";
|
||||
@@ -25,7 +25,7 @@ public class IndexingNodeTypeStrategy implements NodeTypeStrategy {
|
||||
private GraphDatabaseService graphDb;
|
||||
private final Map<String,Class<?>> cache=new HashMap<String, Class<?>>();
|
||||
|
||||
public IndexingNodeTypeStrategy(GraphDatabaseService graphDb, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator) {
|
||||
public IndexingTypeRepresentationStrategy(GraphDatabaseService graphDb, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator) {
|
||||
this.graphDb = graphDb;
|
||||
this.graphEntityInstantiator = graphEntityInstantiator;
|
||||
}
|
||||
@@ -5,10 +5,10 @@ import org.neo4j.graphdb.Node;
|
||||
import org.neo4j.graphdb.Relationship;
|
||||
import org.springframework.beans.factory.FactoryBean;
|
||||
import org.springframework.data.graph.core.NodeBacked;
|
||||
import org.springframework.data.graph.core.NodeTypeStrategy;
|
||||
import org.springframework.data.graph.core.TypeRepresentationStrategy;
|
||||
import org.springframework.data.persistence.EntityInstantiator;
|
||||
|
||||
public class NodeTypeStrategyFactoryBean implements FactoryBean<NodeTypeStrategy> {
|
||||
public class NodeTypeStrategyFactoryBean implements FactoryBean<TypeRepresentationStrategy> {
|
||||
private GraphDatabaseService graphDatabaseService;
|
||||
private EntityInstantiator<NodeBacked, Node> graphEntityInstantiator;
|
||||
private Strategy strategy;
|
||||
@@ -26,12 +26,12 @@ public class NodeTypeStrategyFactoryBean implements FactoryBean<NodeTypeStrategy
|
||||
}
|
||||
|
||||
private boolean isAlreadyIndexed() {
|
||||
return graphDatabaseService.index().existsForNodes(IndexingNodeTypeStrategy.NODE_INDEX_NAME);
|
||||
return graphDatabaseService.index().existsForNodes(IndexingTypeRepresentationStrategy.NODE_INDEX_NAME);
|
||||
}
|
||||
|
||||
private boolean isAlreadySubRef() {
|
||||
for (Relationship rel : graphDatabaseService.getReferenceNode().getRelationships()) {
|
||||
if (rel.getType().name().startsWith(SubReferenceNodeTypeStrategy.SUBREF_PREFIX)) {
|
||||
if (rel.getType().name().startsWith(SubReferenceTypeRepresentationStrategy.SUBREF_PREFIX)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -39,7 +39,7 @@ public class NodeTypeStrategyFactoryBean implements FactoryBean<NodeTypeStrategy
|
||||
}
|
||||
|
||||
@Override
|
||||
public NodeTypeStrategy getObject() throws Exception {
|
||||
public TypeRepresentationStrategy getObject() throws Exception {
|
||||
return strategy.getObject(graphDatabaseService, graphEntityInstantiator);
|
||||
}
|
||||
|
||||
@@ -56,38 +56,38 @@ public class NodeTypeStrategyFactoryBean implements FactoryBean<NodeTypeStrategy
|
||||
private enum Strategy {
|
||||
SubRef {
|
||||
@Override
|
||||
NodeTypeStrategy getObject(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator) {
|
||||
return new SubReferenceNodeTypeStrategy(graphDatabaseService, graphEntityInstantiator);
|
||||
TypeRepresentationStrategy getObject(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator) {
|
||||
return new SubReferenceTypeRepresentationStrategy(graphDatabaseService, graphEntityInstantiator);
|
||||
}
|
||||
|
||||
@Override
|
||||
Class<? extends NodeTypeStrategy> getObjectType() {
|
||||
return SubReferenceNodeTypeStrategy.class;
|
||||
Class<? extends TypeRepresentationStrategy> getObjectType() {
|
||||
return SubReferenceTypeRepresentationStrategy.class;
|
||||
}
|
||||
},
|
||||
Indexed {
|
||||
@Override
|
||||
NodeTypeStrategy getObject(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator) {
|
||||
return new IndexingNodeTypeStrategy(graphDatabaseService, graphEntityInstantiator);
|
||||
TypeRepresentationStrategy getObject(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator) {
|
||||
return new IndexingTypeRepresentationStrategy(graphDatabaseService, graphEntityInstantiator);
|
||||
}
|
||||
|
||||
@Override
|
||||
Class<? extends NodeTypeStrategy> getObjectType() {
|
||||
return IndexingNodeTypeStrategy.class;
|
||||
Class<? extends TypeRepresentationStrategy> getObjectType() {
|
||||
return IndexingTypeRepresentationStrategy.class;
|
||||
}
|
||||
},
|
||||
Noop {
|
||||
@Override
|
||||
NodeTypeStrategy getObject(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator) {
|
||||
return new NoopNodeTypeStrategy();
|
||||
TypeRepresentationStrategy getObject(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator) {
|
||||
return new NoopTypeRepresentationStrategy();
|
||||
}
|
||||
|
||||
@Override
|
||||
Class<? extends NodeTypeStrategy> getObjectType() {
|
||||
return NoopNodeTypeStrategy.class;
|
||||
Class<? extends TypeRepresentationStrategy> getObjectType() {
|
||||
return NoopTypeRepresentationStrategy.class;
|
||||
}
|
||||
};
|
||||
abstract NodeTypeStrategy getObject(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator);
|
||||
abstract Class<? extends NodeTypeStrategy> getObjectType();
|
||||
abstract TypeRepresentationStrategy getObject(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator);
|
||||
abstract Class<? extends TypeRepresentationStrategy> getObjectType();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,26 +2,26 @@ package org.springframework.data.graph.neo4j.support;
|
||||
|
||||
import org.neo4j.graphdb.Node;
|
||||
import org.springframework.data.graph.core.NodeBacked;
|
||||
import org.springframework.data.graph.core.NodeTypeStrategy;
|
||||
import org.springframework.data.graph.core.TypeRepresentationStrategy;
|
||||
|
||||
public class NoopNodeTypeStrategy implements NodeTypeStrategy {
|
||||
public class NoopTypeRepresentationStrategy implements TypeRepresentationStrategy {
|
||||
@Override
|
||||
public void postEntityCreation(NodeBacked entity) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends NodeBacked> Iterable<T> findAll(Class<T> clazz) {
|
||||
throw new UnsupportedOperationException("findAll not supported by NoopNodeTypeStrategy.");
|
||||
throw new UnsupportedOperationException("findAll not supported by NoopTypeRepresentationStrategy.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public long count(Class<? extends NodeBacked> entityClass) {
|
||||
throw new UnsupportedOperationException("count not supported by NoopNodeTypeStrategy.");
|
||||
throw new UnsupportedOperationException("count not supported by NoopTypeRepresentationStrategy.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends NodeBacked> Class<T> getJavaType(Node node) {
|
||||
throw new UnsupportedOperationException("getJavaType not supported NoopNodeTypeStrategy.");
|
||||
throw new UnsupportedOperationException("getJavaType not supported NoopTypeRepresentationStrategy.");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -24,13 +24,13 @@ import org.neo4j.helpers.collection.CombiningIterable;
|
||||
import org.neo4j.helpers.collection.IterableWrapper;
|
||||
import org.neo4j.kernel.impl.traversal.TraversalDescriptionImpl;
|
||||
import org.springframework.data.graph.core.NodeBacked;
|
||||
import org.springframework.data.graph.core.NodeTypeStrategy;
|
||||
import org.springframework.data.graph.core.TypeRepresentationStrategy;
|
||||
import org.springframework.data.persistence.EntityInstantiator;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* A {@link NodeTypeStrategy} that uses a hierarchy of reference nodes to represent the java type of the entity in the
|
||||
* A {@link org.springframework.data.graph.core.TypeRepresentationStrategy} that uses a hierarchy of reference nodes to represent the java type of the entity in the
|
||||
* graph database. Entity nodes are related to their concrete type via an INSTANCE_OF relationship, the type hierarchy is
|
||||
* related to supertypes via SUBCLASS_OF relationships. Each concrete subreference node keeps a count property with the number of
|
||||
* instances of this class in the graph.
|
||||
@@ -38,8 +38,8 @@ import java.util.*;
|
||||
* @author Michael Hunger
|
||||
* @since 13.09.2010
|
||||
*/
|
||||
public class SubReferenceNodeTypeStrategy implements NodeTypeStrategy {
|
||||
private final static Log log = LogFactory.getLog(SubReferenceNodeTypeStrategy.class);
|
||||
public class SubReferenceTypeRepresentationStrategy implements TypeRepresentationStrategy {
|
||||
private final static Log log = LogFactory.getLog(SubReferenceTypeRepresentationStrategy.class);
|
||||
|
||||
public final static RelationshipType INSTANCE_OF_RELATIONSHIP_TYPE = DynamicRelationshipType.withName("INSTANCE_OF");
|
||||
public final static RelationshipType SUBCLASS_OF_RELATIONSHIP_TYPE = DynamicRelationshipType.withName("SUBCLASS_OF");
|
||||
@@ -51,7 +51,7 @@ public class SubReferenceNodeTypeStrategy implements NodeTypeStrategy {
|
||||
private GraphDatabaseService graphDatabaseService;
|
||||
private EntityInstantiator<NodeBacked, Node> entityInstantiator;
|
||||
|
||||
public SubReferenceNodeTypeStrategy(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> entityInstantiator) {
|
||||
public SubReferenceTypeRepresentationStrategy(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> entityInstantiator) {
|
||||
this.graphDatabaseService = graphDatabaseService;
|
||||
this.entityInstantiator = entityInstantiator;
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package org.springframework.data.graph.neo4j.support;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.neo4j.graphdb.GraphDatabaseService;
|
||||
@@ -39,7 +38,7 @@ public class IndexingNodeTypeStrategyTest {
|
||||
@Autowired
|
||||
private GraphDatabaseService graphDatabaseService;
|
||||
@Autowired
|
||||
private IndexingNodeTypeStrategy nodeTypeStrategy;
|
||||
private IndexingTypeRepresentationStrategy nodeTypeStrategy;
|
||||
|
||||
private Thing thing;
|
||||
private SubThing subThing;
|
||||
|
||||
@@ -25,7 +25,7 @@ public class NoopNodeTypeStrategyTest {
|
||||
@Autowired
|
||||
private GraphDatabaseContext graphDatabaseContext;
|
||||
@Autowired
|
||||
private NoopNodeTypeStrategy nodeTypeStrategy;
|
||||
private NoopTypeRepresentationStrategy nodeTypeStrategy;
|
||||
|
||||
private Thing thing;
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ import org.neo4j.helpers.collection.IteratorUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.graph.annotation.NodeEntity;
|
||||
import org.springframework.data.graph.core.NodeBacked;
|
||||
import org.springframework.data.graph.core.NodeTypeStrategy;
|
||||
import org.springframework.data.graph.neo4j.Car;
|
||||
import org.springframework.data.graph.neo4j.Person;
|
||||
import static org.springframework.data.graph.neo4j.Person.persistedPerson;
|
||||
@@ -24,7 +23,6 @@ import org.springframework.data.graph.neo4j.finder.FinderFactory;
|
||||
import org.springframework.data.graph.neo4j.finder.NodeFinder;
|
||||
import org.springframework.data.graph.neo4j.support.node.Neo4jHelper;
|
||||
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.CleanContextCacheTestExecutionListener;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.TestExecutionListeners;
|
||||
@@ -55,7 +53,7 @@ public class SubReferenceNodeTypeStrategyTest {
|
||||
@Autowired
|
||||
private FinderFactory finderFactory;
|
||||
@Autowired
|
||||
private SubReferenceNodeTypeStrategy nodeTypeStrategy;
|
||||
private SubReferenceTypeRepresentationStrategy nodeTypeStrategy;
|
||||
private Node thingNode;
|
||||
private Thing thing;
|
||||
|
||||
@@ -75,8 +73,8 @@ public class SubReferenceNodeTypeStrategyTest {
|
||||
public void testPostEntityCreation() throws Exception {
|
||||
Node typeNode = getInstanceofRelationship().getOtherNode(thingNode);
|
||||
Assert.assertNotNull("type node for thing exists", typeNode);
|
||||
Assert.assertEquals("type node has property of type Thing.class", Thing.class.getName(), typeNode.getProperty(SubReferenceNodeTypeStrategy.SUBREF_CLASS_KEY));
|
||||
Assert.assertEquals("one thing has been created", 1, typeNode.getProperty(SubReferenceNodeTypeStrategy.SUBREFERENCE_NODE_COUNTER_KEY));
|
||||
Assert.assertEquals("type node has property of type Thing.class", Thing.class.getName(), typeNode.getProperty(SubReferenceTypeRepresentationStrategy.SUBREF_CLASS_KEY));
|
||||
Assert.assertEquals("one thing has been created", 1, typeNode.getProperty(SubReferenceTypeRepresentationStrategy.SUBREFERENCE_NODE_COUNTER_KEY));
|
||||
}
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void gettingTypeFromNonTypeNodeShouldThrowAnDescriptiveException() throws Exception {
|
||||
@@ -115,13 +113,13 @@ public class SubReferenceNodeTypeStrategyTest {
|
||||
Node typeNode = getInstanceofRelationship().getOtherNode(thingNode);
|
||||
nodeTypeStrategy.preEntityRemoval(thing);
|
||||
Assert.assertNull("instanceof relationship was removed", getInstanceofRelationship());
|
||||
Assert.assertEquals("no things left after removal", 0, typeNode.getProperty(SubReferenceNodeTypeStrategy.SUBREFERENCE_NODE_COUNTER_KEY));
|
||||
Assert.assertEquals("no things left after removal", 0, typeNode.getProperty(SubReferenceTypeRepresentationStrategy.SUBREFERENCE_NODE_COUNTER_KEY));
|
||||
|
||||
}
|
||||
|
||||
@Transactional
|
||||
private Relationship getInstanceofRelationship() {
|
||||
return thingNode.getSingleRelationship(SubReferenceNodeTypeStrategy.INSTANCE_OF_RELATIONSHIP_TYPE, Direction.OUTGOING);
|
||||
return thingNode.getSingleRelationship(SubReferenceTypeRepresentationStrategy.INSTANCE_OF_RELATIONSHIP_TYPE, Direction.OUTGOING);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -18,7 +18,7 @@ log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
|
||||
|
||||
|
||||
log4j.category.org.springframework=WARN
|
||||
#log4j.category.org.springframework.data.graph.neo4j.support.SubReferenceNodeTypeStrategy=DEBUG
|
||||
#log4j.category.org.springframework.data.graph.neo4j.support.SubReferenceTypeRepresentationStrategyonStrategy=DEBUG
|
||||
#log4j.category.org.springframework.data.graph.neo4j.fieldaccess=DEBUG
|
||||
#log4j.category.org.springframework.data=TRACE
|
||||
#log4j.category.org.springframework.data.support=TRACE
|
||||
|
||||
@@ -100,10 +100,10 @@
|
||||
<property name="conversionService">
|
||||
<bean class="org.springframework.data.graph.neo4j.fieldaccess.Neo4jConversionServiceFactoryBean"/>
|
||||
</property>
|
||||
<property name="nodeTypeStrategy" ref="nodeTypeStrategy"/>
|
||||
<property name="typeRepresentationStrategy" ref="typeRepresentationStrategy"/>
|
||||
</bean>
|
||||
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.NodeTypeStrategyFactoryBean">
|
||||
<bean id="typeRepresentationStrategy" class="org.springframework.data.graph.neo4j.support.NodeTypeStrategyFactoryBean">
|
||||
<constructor-arg ref="graphDatabaseService"/>
|
||||
<constructor-arg ref="graphEntityInstantiator"/>
|
||||
</bean>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
|
||||
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.IndexingNodeTypeStrategy">
|
||||
<bean id="typeRepresentationStrategy" class="org.springframework.data.graph.neo4j.support.IndexingTypeRepresentationStrategy">
|
||||
<constructor-arg ref="graphDatabaseService" />
|
||||
<constructor-arg ref="graphEntityInstantiator" />
|
||||
</bean>
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
<property name="conversionService">
|
||||
<bean class="org.springframework.data.graph.neo4j.fieldaccess.Neo4jConversionServiceFactoryBean"/>
|
||||
</property>
|
||||
<property name="nodeTypeStrategy" ref="nodeTypeStrategy"/>
|
||||
<property name="typeRepresentationStrategy" ref="typeRepresentationStrategy"/>
|
||||
<property name="validator">
|
||||
<bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
|
||||
</property>
|
||||
@@ -100,7 +100,7 @@
|
||||
<bean id="graphEntityInstantiator"
|
||||
class="org.springframework.data.graph.neo4j.support.node.Neo4jConstructorGraphEntityInstantiator"/>
|
||||
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.NodeTypeStrategyFactoryBean">
|
||||
<bean id="typeRepresentationStrategy" class="org.springframework.data.graph.neo4j.support.NodeTypeStrategyFactoryBean">
|
||||
<constructor-arg ref="graphDatabaseService" />
|
||||
<constructor-arg ref="graphEntityInstantiator" />
|
||||
</bean>
|
||||
|
||||
@@ -14,5 +14,5 @@
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
|
||||
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.NoopNodeTypeStrategy" />
|
||||
<bean id="typeRepresentationStrategy" class="org.springframework.data.graph.neo4j.support.NoopTypeRepresentationStrategy" />
|
||||
</beans>
|
||||
@@ -14,7 +14,7 @@
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
|
||||
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.SubReferenceNodeTypeStrategy">
|
||||
<bean id="typeRepresentationStrategy" class="org.springframework.data.graph.neo4j.support.SubReferenceTypeRepresentationStrategy">
|
||||
<constructor-arg ref="graphDatabaseService"/>
|
||||
<constructor-arg ref="graphEntityInstantiator" />
|
||||
</bean>
|
||||
|
||||
Reference in New Issue
Block a user