minor repository refactoring
This commit is contained in:
@@ -28,4 +28,5 @@ public interface GraphEntityInformation<S extends PropertyContainer, T extends G
|
||||
|
||||
boolean isNodeEntity();
|
||||
boolean isPartialEntity();
|
||||
boolean isRelationshipEntity();
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ package org.springframework.data.neo4j.repository;
|
||||
|
||||
import org.neo4j.graphdb.PropertyContainer;
|
||||
import org.springframework.data.neo4j.annotation.NodeEntity;
|
||||
import org.springframework.data.neo4j.annotation.RelationshipEntity;
|
||||
import org.springframework.data.neo4j.core.GraphBacked;
|
||||
import org.springframework.data.neo4j.core.NodeBacked;
|
||||
import org.springframework.data.neo4j.core.RelationshipBacked;
|
||||
@@ -31,26 +32,31 @@ import org.springframework.data.repository.core.support.AbstractEntityInformatio
|
||||
|
||||
public class GraphMetamodelEntityInformation<S extends PropertyContainer, T extends GraphBacked<S>> extends AbstractEntityInformation<T,Long> implements GraphEntityInformation<S,T> {
|
||||
|
||||
private final boolean isNodeEntity;
|
||||
private final boolean isPartialEntity;
|
||||
private GraphDatabaseContext graphDatabaseContext;
|
||||
private final RelationshipEntity relationshipEntity;
|
||||
private final NodeEntity nodeEntity;
|
||||
|
||||
public GraphMetamodelEntityInformation(Class domainClass, GraphDatabaseContext graphDatabaseContext) {
|
||||
super(domainClass);
|
||||
this.graphDatabaseContext = graphDatabaseContext;
|
||||
NodeEntity nodeEntity = getJavaType().getAnnotation(NodeEntity.class);
|
||||
isNodeEntity = nodeEntity!=null;
|
||||
isPartialEntity = isNodeEntity && nodeEntity.partial();
|
||||
nodeEntity = getJavaType().getAnnotation(NodeEntity.class);
|
||||
relationshipEntity = getJavaType().getAnnotation(RelationshipEntity.class);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isNodeEntity() {
|
||||
return isNodeEntity;
|
||||
return nodeEntity!=null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPartialEntity() {
|
||||
return isPartialEntity;
|
||||
return nodeEntity!=null && nodeEntity.partial();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRelationshipEntity() {
|
||||
return relationshipEntity!=null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -92,12 +92,9 @@ public class GraphRepositoryFactory extends RepositoryFactorySupport {
|
||||
@Override
|
||||
protected Class<?> getRepositoryBaseClass(RepositoryMetadata repositoryMetadata) {
|
||||
Class<?> domainClass = repositoryMetadata.getDomainClass();
|
||||
if (findAnnotation(domainClass, NodeEntity.class) !=null) {
|
||||
return NodeGraphRepository.class;
|
||||
}
|
||||
if (findAnnotation(domainClass, RelationshipEntity.class) !=null) {
|
||||
return RelationshipGraphRepository.class;
|
||||
}
|
||||
final GraphEntityInformation entityInformation = (GraphEntityInformation) getEntityInformation(domainClass);
|
||||
if (entityInformation.isNodeEntity()) return NodeGraphRepository.class;
|
||||
if (entityInformation.isRelationshipEntity()) return RelationshipGraphRepository.class;
|
||||
throw new IllegalArgumentException("Invalid Domain Class "+ domainClass+" neither Node- nor RelationshipEntity");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user