/** * * @param relation * @param property * @param relevantContexts * @return a List containing all properties which would be overridden by setting the property on the relation. */ private List<DifferingProperty> getPropertyOverviewForProvidedRelation(ResourceEditRelation relation, ResourceEditProperty property, List<ContextEntity> relevantContexts) { if (relevantContexts.isEmpty()) { return Collections.EMPTY_LIST; } List<Integer> relevantContextIds = buildRelevantContextIdsList(relevantContexts); Query query = queries.getPropertyOverviewForProvidedRelatedResourceQuery(property.getTechnicalKey(), relation.getResRelId(), relevantContextIds); List<DifferingProperty> differingProperties = getDifferingProperties(property, query, Origin.RELATION); // obtain property values defined on the (slave) resource, which would be overwritten by defining one on the relation - global context is relevant here relevantContextIds.add(contextHierarchy.getContextWithParentIds(relevantContexts.get(0)).get(0)); differingProperties.addAll(getPropertyDefinedOnResource(relation, property, relevantContextIds, Origin.INSTANCE)); return differingProperties; }
/** * * @param relation * @param property * @param relevantContexts * @return a List containing all properties which would be overridden by setting the property on the relation. */ private List<DifferingProperty> getPropertyOverviewForConsumedRelation(ResourceEditRelation relation, ResourceEditProperty property, List<ContextEntity> relevantContexts) { if (relevantContexts.isEmpty()) { return Collections.EMPTY_LIST; } List<Integer> relevantContextIds = buildRelevantContextIdsList(relevantContexts); Query query = queries.getPropertyOverviewForConsumedRelatedResourceQuery(property.getTechnicalKey(), relation.getResRelId(), relevantContextIds); List<DifferingProperty> differingProperties = getDifferingProperties(property, query, Origin.RELATION); // obtain property values defined on the (slave) resource, which would be overwritten by defining one on the relation - global context is relevant here relevantContextIds.add(contextHierarchy.getContextWithParentIds(relevantContexts.get(0)).get(0)); differingProperties.addAll(getPropertyDefinedOnResource(relation, property, relevantContextIds, Origin.INSTANCE)); return differingProperties; }