mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-18 07:23:08 +00:00
Bugfix indirect relationship discovery updates
This commit is contained in:
@@ -412,16 +412,13 @@ public class RelationshipServiceImpl implements RelationshipService {
|
|||||||
EntityType leftType = relationship.getRelationshipType().getLeftType();
|
EntityType leftType = relationship.getRelationshipType().getLeftType();
|
||||||
String entityTypeStringFromMetadata = relationshipMetadataService.getEntityTypeStringFromMetadata(item);
|
String entityTypeStringFromMetadata = relationshipMetadataService.getEntityTypeStringFromMetadata(item);
|
||||||
EntityType actualEntityType = entityTypeService.findByEntityType(context, entityTypeStringFromMetadata);
|
EntityType actualEntityType = entityTypeService.findByEntityType(context, entityTypeStringFromMetadata);
|
||||||
boolean isLeft = false;
|
relationshipTypes = relationshipTypeService.findByEntityType(context, actualEntityType);
|
||||||
if (StringUtils.equalsIgnoreCase(leftType.getLabel(),
|
|
||||||
entityTypeStringFromMetadata)) {
|
|
||||||
relationshipTypes = relationshipTypeService.findByEntityType(context, actualEntityType, false);
|
|
||||||
} else {
|
|
||||||
isLeft = true;
|
|
||||||
relationshipTypes = relationshipTypeService.findByEntityType(context, actualEntityType, true);
|
|
||||||
}
|
|
||||||
for (RelationshipType relationshipType : relationshipTypes) {
|
for (RelationshipType relationshipType : relationshipTypes) {
|
||||||
if (virtualMetadataPopulator.getMap().containsKey(relationshipType.getRightwardType())) {
|
if (virtualMetadataPopulator.getMap().containsKey(relationshipType.getRightwardType())) {
|
||||||
|
boolean isLeft = false; //was always true
|
||||||
|
if (relationshipType.getRightType().equals(entityTypeStringFromMetadata)) {
|
||||||
|
isLeft = true;
|
||||||
|
}
|
||||||
List<Relationship> list = findByItemAndRelationshipType(context, item, relationshipType, isLeft);
|
List<Relationship> list = findByItemAndRelationshipType(context, item, relationshipType, isLeft);
|
||||||
for (Relationship foundRelationship : list) {
|
for (Relationship foundRelationship : list) {
|
||||||
if (isLeft) {
|
if (isLeft) {
|
||||||
@@ -459,16 +456,13 @@ public class RelationshipServiceImpl implements RelationshipService {
|
|||||||
EntityType rightType = relationship.getRelationshipType().getRightType();
|
EntityType rightType = relationship.getRelationshipType().getRightType();
|
||||||
String entityTypeStringFromMetadata = relationshipMetadataService.getEntityTypeStringFromMetadata(item);
|
String entityTypeStringFromMetadata = relationshipMetadataService.getEntityTypeStringFromMetadata(item);
|
||||||
EntityType actualEntityType = entityTypeService.findByEntityType(context, entityTypeStringFromMetadata);
|
EntityType actualEntityType = entityTypeService.findByEntityType(context, entityTypeStringFromMetadata);
|
||||||
boolean isLeft = false;
|
relationshipTypes = relationshipTypeService.findByEntityType(context, actualEntityType);
|
||||||
if (StringUtils.equalsIgnoreCase(rightType.getLabel(),
|
|
||||||
relationshipMetadataService.getEntityTypeStringFromMetadata(item))) {
|
|
||||||
isLeft = true;
|
|
||||||
relationshipTypes = relationshipTypeService.findByEntityType(context, actualEntityType, true);
|
|
||||||
} else {
|
|
||||||
relationshipTypes = relationshipTypeService.findByEntityType(context, actualEntityType, false);
|
|
||||||
}
|
|
||||||
for (RelationshipType relationshipType : relationshipTypes) {
|
for (RelationshipType relationshipType : relationshipTypes) {
|
||||||
if (virtualMetadataPopulator.getMap().containsKey(relationshipType.getLeftwardType())) {
|
if (virtualMetadataPopulator.getMap().containsKey(relationshipType.getLeftwardType())) {
|
||||||
|
boolean isLeft = false; //was always false
|
||||||
|
if (relationshipType.getRightType().equals(entityTypeStringFromMetadata)) {
|
||||||
|
isLeft = true;
|
||||||
|
}
|
||||||
List<Relationship> list = findByItemAndRelationshipType(context, item, relationshipType, isLeft);
|
List<Relationship> list = findByItemAndRelationshipType(context, item, relationshipType, isLeft);
|
||||||
for (Relationship foundRelationship : list) {
|
for (Relationship foundRelationship : list) {
|
||||||
if (isLeft) {
|
if (isLeft) {
|
||||||
|
Reference in New Issue
Block a user