renamed @GraphTraversal attribute "traversalBuilder" to "traversal"

This commit is contained in:
Michael Hunger
2011-10-15 10:39:59 +02:00
parent 4e64019e30
commit b652ff9f08
9 changed files with 18 additions and 16 deletions

View File

@@ -41,13 +41,13 @@ public class Group {
@RelatedTo(type = "persons", elementClass = Person.class)
private Iterable<Person> readOnlyPersons;
@GraphTraversal(traversalBuilder = PeopleTraversalBuilder.class, elementClass = Person.class, params = "persons")
@GraphTraversal(traversal = PeopleTraversalBuilder.class, elementClass = Person.class, params = "persons")
private Iterable<Person> people;
@GraphTraversal(traversalBuilder = PeopleTraversalBuilder.class, params = "persons")
@GraphTraversal(traversal = PeopleTraversalBuilder.class, params = "persons")
private Iterable<Node> peopleNodes;
@GraphTraversal(traversalBuilder = PeopleTraversalBuilder.class, params = "persons")
@GraphTraversal(traversal = PeopleTraversalBuilder.class, params = "persons")
private Iterable<Relationship> peopleRelationships;
@GraphProperty

View File

@@ -14,10 +14,8 @@ import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.Version;
import org.neo4j.graphdb.DynamicRelationshipType;
import org.springframework.data.neo4j.annotation.GraphProperty;
import org.springframework.data.neo4j.annotation.GraphTraversal;
import org.springframework.data.neo4j.annotation.NodeEntity;
@@ -46,7 +44,7 @@ public class UserAccount {
@RelatedToVia(type = "recommends", elementClass = Recommendation.class)
Iterable<Recommendation> recommendations;
@GraphTraversal(traversalBuilder = TopRatedRestaurantTraverser.class, elementClass = Restaurant.class)
@GraphTraversal(traversal = TopRatedRestaurantTraverser.class, elementClass = Restaurant.class)
Iterable<Restaurant> topRatedRestaurants;
public Collection<RatedRestaurant> getTopNRatedRestaurants(int n) {

View File

@@ -40,7 +40,7 @@ public @interface GraphTraversal {
* @return Builder for the {@link org.neo4j.graphdb.traversal.TraversalDescription} to be applied
*/
// FQN is a fix for javac compiler bug
Class<? extends org.springframework.data.neo4j.core.FieldTraversalDescriptionBuilder> traversalBuilder() default org.springframework.data.neo4j.core.FieldTraversalDescriptionBuilder.class;
Class<? extends org.springframework.data.neo4j.core.FieldTraversalDescriptionBuilder> traversal() default org.springframework.data.neo4j.core.FieldTraversalDescriptionBuilder.class;
/**
* @return target graph entity to be iterated over.

View File

@@ -21,7 +21,7 @@ import org.springframework.data.neo4j.mapping.Neo4jPersistentProperty;
/**
* Interface for classes that build traversal descriptions. Those classes can be referred to by
* {@link org.springframework.data.neo4j.annotation.GraphTraversal#traversalBuilder()} to provide fields that return
* {@link org.springframework.data.neo4j.annotation.GraphTraversal#traversal()} to provide fields that return
* a dynamic traversal on access.
*
* @author Michael Hunger

View File

@@ -43,7 +43,7 @@ public class TraversalFieldAccessorFactory implements FieldAccessorFactory {
public boolean accept(final Neo4jPersistentProperty f) {
final GraphTraversal graphEntityTraversal = f.getAnnotation(GraphTraversal.class);
return graphEntityTraversal != null
&& graphEntityTraversal.traversalBuilder() != FieldTraversalDescriptionBuilder.class
&& graphEntityTraversal.traversal() != FieldTraversalDescriptionBuilder.class
&& f.getType().equals(Iterable.class);
}
@@ -110,7 +110,7 @@ public class TraversalFieldAccessorFactory implements FieldAccessorFactory {
private FieldTraversalDescriptionBuilder createTraversalDescription(final GraphTraversal graphEntityTraversal) {
try {
final Class<? extends FieldTraversalDescriptionBuilder> traversalDescriptionClass = graphEntityTraversal.traversalBuilder();
final Class<? extends FieldTraversalDescriptionBuilder> traversalDescriptionClass = graphEntityTraversal.traversal();
final Constructor<? extends FieldTraversalDescriptionBuilder> constructor = traversalDescriptionClass.getDeclaredConstructor();
constructor.setAccessible(true);
return constructor.newInstance();

View File

@@ -31,6 +31,7 @@ import org.springframework.core.convert.ConversionService;
import org.springframework.data.neo4j.annotation.Indexed;
import org.springframework.data.neo4j.annotation.NodeEntity;
import org.springframework.data.neo4j.annotation.RelationshipEntity;
import org.springframework.data.neo4j.core.EntityPath;
import org.springframework.data.neo4j.core.TypeRepresentationStrategy;
import org.springframework.data.neo4j.fieldaccess.GraphBackedEntityIterableWrapper;
import org.springframework.data.neo4j.mapping.Neo4jEntityPersister;
@@ -38,6 +39,8 @@ import org.springframework.data.neo4j.mapping.Neo4jMappingContext;
import org.springframework.data.neo4j.mapping.Neo4jPersistentProperty;
import org.springframework.data.neo4j.support.node.EntityStateFactory;
import org.springframework.data.neo4j.support.node.NodeEntityInstantiator;
import org.springframework.data.neo4j.support.path.ConvertingEntityPath;
import org.springframework.data.neo4j.support.path.EntityPathPathIterableWrapper;
import org.springframework.data.neo4j.support.query.CypherQueryExecutor;
import org.springframework.data.neo4j.support.relationship.RelationshipEntityInstantiator;
import org.springframework.data.util.TypeInformation;
@@ -330,6 +333,7 @@ public class GraphDatabaseContext {
public <T> Iterable<T> convertResultsTo(Traverser traverser, Class<T> targetType) {
if (Node.class.isAssignableFrom(targetType)) return (Iterable<T>) traverser.nodes();
if (Relationship.class.isAssignableFrom(targetType)) return (Iterable<T>) traverser.relationships();
if (EntityPath.class.isAssignableFrom(targetType)) return new EntityPathPathIterableWrapper(traverser,this);
if (Path.class.isAssignableFrom(targetType)) return (Iterable<T>) traverser;
if (isNodeEntity(targetType)) {
return GraphBackedEntityIterableWrapper.create(traverser.nodes(), targetType, this);

View File

@@ -47,7 +47,7 @@ public class Group {
@RelatedTo(type = "persons", elementClass = Person.class)
private Iterable<Person> readOnlyPersons;
@GraphTraversal(traversalBuilder = PeopleTraversalBuilder.class, elementClass = Person.class, params = "persons")
@GraphTraversal(traversal = PeopleTraversalBuilder.class, elementClass = Person.class, params = "persons")
private Iterable<Person> people;
@GraphProperty

View File

@@ -71,16 +71,16 @@ public class Person {
@RelatedToVia(type = "knows", elementClass = Friendship.class)
private Iterable<Friendship> friendships;
@Query(value = "start person=node({self}) match (person)<-[?:boss]-(boss) return boss")
@Query("start person=node({self}) match (person)<-[?:boss]-(boss) return boss")
private Person bossByQuery;
@Query(value = "start person=node({self}) match (person)<-[?:boss]-(boss) return boss.name")
@Query("start person=node({self}) match (person)<-[?:boss]-(boss) return boss.name")
private String bossName;
@Query(value = "start person=node({self}) match (person)<-[:persons]-(team)-[:persons]->(member) return member")
@Query("start person=node({self}) match (person)<-[:persons]-(team)-[:persons]->(member) return member")
private Iterable<Person> otherTeamMembers;
@Query(value = "start person=node({self}) match (person)<-[:persons]-(team)-[:persons]->(member) return member.name, member.age")
@Query("start person=node({self}) match (person)<-[:persons]-(team)-[:persons]->(member) return member.name, member.age")
private Iterable<Map<String,Object>> otherTeamMemberData;
public Person(Node n) {

View File

@@ -10,6 +10,6 @@
<context:annotation-config/>
<neo4j:config graphDatabaseService="graphDatabaseService"/>
<neo4j:repositories base-package="org.springframework.data.neo4j"/>
<neo4j:repositories base-package="org.springframework.data.neo4j.model"/>
<bean id="graphDatabaseService" class="org.neo4j.test.ImpermanentGraphDatabase"/>
</beans>