nodeDelegatingFieldAccessorFactory as overridable bean definition

changed concrete type NodeDelegatingFieldAccessorFactory to DelegatingFieldAccessorFactory<Node>
This commit is contained in:
Michael Hunger
2011-08-10 15:18:13 +02:00
parent 3c37c5edcd
commit 97be90ca0a
3 changed files with 16 additions and 13 deletions

View File

@@ -30,18 +30,19 @@ import org.springframework.core.convert.ConversionService;
import org.springframework.dao.support.PersistenceExceptionTranslator;
import org.springframework.data.neo4j.core.NodeBacked;
import org.springframework.data.neo4j.core.RelationshipBacked;
import org.springframework.data.neo4j.fieldaccess.DelegatingFieldAccessorFactory;
import org.springframework.data.neo4j.fieldaccess.Neo4jConversionServiceFactoryBean;
import org.springframework.data.neo4j.fieldaccess.NodeDelegatingFieldAccessorFactory;
import org.springframework.data.neo4j.repository.DirectGraphRepositoryFactory;
import org.springframework.data.neo4j.support.node.NodeEntityStateFactory;
import org.springframework.data.neo4j.support.relationship.RelationshipEntityStateFactory;
import org.springframework.data.neo4j.support.GraphDatabaseContext;
import org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategyFactory;
import org.springframework.data.neo4j.support.node.Neo4jNodeBacking;
import org.springframework.data.neo4j.support.node.NodeEntityInstantiator;
import org.springframework.data.neo4j.support.node.NodeEntityStateFactory;
import org.springframework.data.neo4j.support.node.PartialNodeEntityInstantiator;
import org.springframework.data.neo4j.support.relationship.Neo4jRelationshipBacking;
import org.springframework.data.neo4j.support.relationship.RelationshipEntityInstantiator;
import org.springframework.data.neo4j.support.relationship.RelationshipEntityStateFactory;
import org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategyFactory;
import org.springframework.data.neo4j.template.Neo4jExceptionTranslator;
import org.springframework.data.neo4j.transaction.ChainedTransactionManager;
import org.springframework.data.persistence.EntityInstantiator;
@@ -162,17 +163,19 @@ public class Neo4jConfiguration {
@Bean
public NodeEntityStateFactory nodeEntityStateFactory() throws Exception {
final GraphDatabaseContext graphDatabaseContext = graphDatabaseContext();
final DirectGraphRepositoryFactory graphRepositoryFactory = directGraphRepositoryFactory();
NodeEntityStateFactory entityStateFactory = new NodeEntityStateFactory();
entityStateFactory.setGraphDatabaseContext(graphDatabaseContext);
entityStateFactory.setGraphDatabaseContext(graphDatabaseContext());
entityStateFactory.setEntityManagerFactory(entityManagerFactory);
final NodeDelegatingFieldAccessorFactory nodeDelegatingFieldAccessorFactory = new NodeDelegatingFieldAccessorFactory(graphDatabaseContext);
entityStateFactory.setNodeDelegatingFieldAccessorFactory(nodeDelegatingFieldAccessorFactory);
entityStateFactory.setNodeDelegatingFieldAccessorFactory(nodeDelegatingFieldAccessorFactory());
return entityStateFactory;
}
@Bean
public DelegatingFieldAccessorFactory<NodeBacked> nodeDelegatingFieldAccessorFactory() throws Exception {
return new NodeDelegatingFieldAccessorFactory(graphDatabaseContext());
}
@Bean
public PlatformTransactionManager transactionManager() {
if (isUsingCrossStorePersistence()) {

View File

@@ -21,7 +21,7 @@ import org.neo4j.graphdb.NotInTransactionException;
import org.springframework.dao.InvalidDataAccessResourceUsageException;
import org.springframework.data.neo4j.core.NodeBacked;
import org.springframework.data.neo4j.fieldaccess.DefaultEntityState;
import org.springframework.data.neo4j.fieldaccess.NodeDelegatingFieldAccessorFactory;
import org.springframework.data.neo4j.fieldaccess.DelegatingFieldAccessorFactory;
import org.springframework.data.neo4j.support.GraphDatabaseContext;
/**
@@ -32,7 +32,7 @@ public class NodeEntityState<ENTITY extends NodeBacked> extends DefaultEntitySta
private final GraphDatabaseContext graphDatabaseContext;
public NodeEntityState(final Node underlyingState, final ENTITY entity, final Class<? extends ENTITY> type, final GraphDatabaseContext graphDatabaseContext, final NodeDelegatingFieldAccessorFactory nodeDelegatingFieldAccessorFactory) {
public NodeEntityState(final Node underlyingState, final ENTITY entity, final Class<? extends ENTITY> type, final GraphDatabaseContext graphDatabaseContext, final DelegatingFieldAccessorFactory<NodeBacked> nodeDelegatingFieldAccessorFactory) {
super(underlyingState, entity, type, nodeDelegatingFieldAccessorFactory);
this.graphDatabaseContext = graphDatabaseContext;
}

View File

@@ -20,8 +20,8 @@ import org.neo4j.graphdb.Node;
import org.springframework.data.neo4j.annotation.NodeEntity;
import org.springframework.data.neo4j.core.EntityState;
import org.springframework.data.neo4j.core.NodeBacked;
import org.springframework.data.neo4j.fieldaccess.DelegatingFieldAccessorFactory;
import org.springframework.data.neo4j.fieldaccess.DetachedEntityState;
import org.springframework.data.neo4j.fieldaccess.NodeDelegatingFieldAccessorFactory;
import org.springframework.data.neo4j.support.GraphDatabaseContext;
import javax.annotation.PostConstruct;
@@ -34,7 +34,7 @@ public class NodeEntityStateFactory {
private EntityManagerFactory entityManagerFactory;
private NodeDelegatingFieldAccessorFactory nodeDelegatingFieldAccessorFactory;
private DelegatingFieldAccessorFactory<NodeBacked> nodeDelegatingFieldAccessorFactory;
private PartialNodeEntityState.PartialNodeDelegatingFieldAccessorFactory delegatingFieldAccessorFactory;
@@ -61,7 +61,7 @@ public class NodeEntityStateFactory {
}
public void setNodeDelegatingFieldAccessorFactory(
NodeDelegatingFieldAccessorFactory nodeDelegatingFieldAccessorFactory) {
DelegatingFieldAccessorFactory<NodeBacked> nodeDelegatingFieldAccessorFactory) {
this.nodeDelegatingFieldAccessorFactory = nodeDelegatingFieldAccessorFactory;
}