Extracted node type strategy selection to a factory bean.
This commit is contained in:
@@ -100,7 +100,7 @@
|
||||
<property name="nodeTypeStrategy" ref="nodeTypeStrategy"/>
|
||||
</bean>
|
||||
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.SubReferenceNodeTypeStrategy">
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.NodeTypeStrategyFactoryBean">
|
||||
<constructor-arg ref="graphDatabaseService"/>
|
||||
<constructor-arg ref="graphEntityInstantiator"/>
|
||||
</bean>
|
||||
|
||||
@@ -31,7 +31,7 @@ import org.springframework.data.graph.neo4j.fieldaccess.NodeEntityStateFactory;
|
||||
import org.springframework.data.graph.neo4j.fieldaccess.RelationshipEntityStateFactory;
|
||||
import org.springframework.data.graph.neo4j.finder.FinderFactory;
|
||||
import org.springframework.data.graph.neo4j.support.GraphDatabaseContext;
|
||||
import org.springframework.data.graph.neo4j.support.SubReferenceNodeTypeStrategy;
|
||||
import org.springframework.data.graph.neo4j.support.NodeTypeStrategyFactoryBean;
|
||||
import org.springframework.data.graph.neo4j.support.node.Neo4jConstructorGraphEntityInstantiator;
|
||||
import org.springframework.data.graph.neo4j.support.node.Neo4jNodeBacking;
|
||||
import org.springframework.data.graph.neo4j.support.node.PartialNeo4jEntityInstantiator;
|
||||
@@ -93,7 +93,8 @@ public class Neo4jConfiguration {
|
||||
EntityInstantiator<NodeBacked, Node> graphEntityInstantiator = getGraphEntityInstantiator();
|
||||
gdc.setGraphEntityInstantiator(graphEntityInstantiator);
|
||||
gdc.setConversionService(new Neo4jConversionServiceFactoryBean().getObject());
|
||||
gdc.setNodeTypeStrategy(new SubReferenceNodeTypeStrategy(graphDatabaseService, graphEntityInstantiator));
|
||||
NodeTypeStrategyFactoryBean nodeTypeStrategyFactoryBean = new NodeTypeStrategyFactoryBean(graphDatabaseService, graphEntityInstantiator);
|
||||
gdc.setNodeTypeStrategy(nodeTypeStrategyFactoryBean.getObject());
|
||||
if (validator!=null) {
|
||||
gdc.setValidator(validator);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package org.springframework.data.graph.neo4j.support;
|
||||
|
||||
import org.neo4j.graphdb.GraphDatabaseService;
|
||||
import org.neo4j.graphdb.Node;
|
||||
import org.springframework.beans.factory.FactoryBean;
|
||||
import org.springframework.data.graph.core.NodeBacked;
|
||||
import org.springframework.data.graph.core.NodeTypeStrategy;
|
||||
import org.springframework.persistence.support.EntityInstantiator;
|
||||
|
||||
public class NodeTypeStrategyFactoryBean implements FactoryBean<NodeTypeStrategy> {
|
||||
private GraphDatabaseService graphDatabaseService;
|
||||
private EntityInstantiator<NodeBacked, Node> graphEntityInstantiator;
|
||||
|
||||
public NodeTypeStrategyFactoryBean(GraphDatabaseService graphDatabaseService, EntityInstantiator<NodeBacked, Node> graphEntityInstantiator) {
|
||||
this.graphDatabaseService = graphDatabaseService;
|
||||
this.graphEntityInstantiator = graphEntityInstantiator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NodeTypeStrategy getObject() throws Exception {
|
||||
return new SubReferenceNodeTypeStrategy(graphDatabaseService, graphEntityInstantiator);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<?> getObjectType() {
|
||||
return SubReferenceNodeTypeStrategy.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSingleton() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -103,7 +103,7 @@
|
||||
<property name="nodeTypeStrategy" ref="nodeTypeStrategy"/>
|
||||
</bean>
|
||||
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.SubReferenceNodeTypeStrategy">
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.NodeTypeStrategyFactoryBean">
|
||||
<constructor-arg ref="graphDatabaseService"/>
|
||||
<constructor-arg ref="graphEntityInstantiator"/>
|
||||
</bean>
|
||||
|
||||
@@ -100,16 +100,11 @@
|
||||
<bean id="graphEntityInstantiator"
|
||||
class="org.springframework.data.graph.neo4j.support.node.Neo4jConstructorGraphEntityInstantiator"/>
|
||||
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.SubReferenceNodeTypeStrategy">
|
||||
<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.NodeTypeStrategyFactoryBean">
|
||||
<constructor-arg ref="graphDatabaseService" />
|
||||
<constructor-arg ref="graphEntityInstantiator" />
|
||||
</bean>
|
||||
|
||||
<!--<bean id="nodeTypeStrategy" class="org.springframework.data.graph.neo4j.support.IndexingNodeTypeStrategy">-->
|
||||
<!--<constructor-arg ref="graphDatabaseService" />-->
|
||||
<!--<constructor-arg ref="graphEntityInstantiator" />-->
|
||||
<!--</bean>-->
|
||||
|
||||
<bean id="nodeEntityStateFactory" class="org.springframework.data.graph.neo4j.fieldaccess.NodeEntityStateFactory">
|
||||
<property name="nodeDelegatingFieldAccessorFactory">
|
||||
<bean class="org.springframework.data.graph.neo4j.fieldaccess.NodeDelegatingFieldAccessorFactory">
|
||||
|
||||
Reference in New Issue
Block a user