use of org.alfresco.module.org_alfresco_module_rm.relationship.RelationshipType in project records-management by Alfresco.
the class CustomRefsGet method getRelationshipData.
/**
* Creates relationship data for the ftl template
*
* @param relationships The relationships
* @return The relationship data
*/
private List<Map<String, String>> getRelationshipData(Set<Relationship> relationships) {
List<Map<String, String>> relationshipData = new ArrayList<Map<String, String>>();
for (Relationship relationship : relationships) {
String uniqueName = relationship.getUniqueName();
RelationshipDefinition relationshipDefinition = getRelationshipService().getRelationshipDefinition(uniqueName);
NodeRef source = relationship.getSource();
NodeRef target = relationship.getTarget();
if (relationshipDefinition != null && hasView(source) && hasView(target)) {
Map<String, String> data = new HashMap<String, String>();
RelationshipType type = relationshipDefinition.getType();
RelationshipDisplayName displayName = relationshipDefinition.getDisplayName();
if (RelationshipType.BIDIRECTIONAL.equals(type)) {
data.put(LABEL, displayName.getSourceText());
data.put(SOURCE_REF, source.toString());
data.put(TARGET_REF, target.toString());
} else if (RelationshipType.PARENTCHILD.equals(type)) {
data.put(SOURCE, displayName.getSourceText());
data.put(TARGET, displayName.getTargetText());
data.put(PARENT_REF, source.toString());
data.put(CHILD_REF, target.toString());
} else {
StringBuilder sb = new StringBuilder();
sb.append("Unsupported relationship type '").append(type).append("'.");
throw new WebScriptException(Status.STATUS_BAD_REQUEST, sb.toString());
}
data.put(REFERENCE_TYPE, type.toString().toLowerCase());
data.put(REF_ID, uniqueName);
relationshipData.add(data);
}
}
return relationshipData;
}
use of org.alfresco.module.org_alfresco_module_rm.relationship.RelationshipType in project records-management by Alfresco.
the class RelationshipLabelsGet method getRelationshipsLabels.
/**
* Gets the list of available relationship labels
*
* @return The list of available relationship labels
*/
private List<RelationshipLabel> getRelationshipsLabels() {
List<RelationshipLabel> relationshipLabels = new ArrayList<RelationshipLabel>();
Set<RelationshipDefinition> relationshipDefinitions = getRelationshipService().getRelationshipDefinitions();
for (RelationshipDefinition relationshipDefinition : relationshipDefinitions) {
RelationshipType type = relationshipDefinition.getType();
String uniqueName = relationshipDefinition.getUniqueName();
RelationshipDisplayName displayName = relationshipDefinition.getDisplayName();
String sourceText = displayName.getSourceText();
String targetText = displayName.getTargetText();
if (RelationshipType.PARENTCHILD.equals(type)) {
relationshipLabels.add(new RelationshipLabel(sourceText, uniqueName + INVERT));
relationshipLabels.add(new RelationshipLabel(targetText, uniqueName));
} else if (RelationshipType.BIDIRECTIONAL.equals(type)) {
if (!sourceText.equals(targetText)) {
throw new WebScriptException(Status.STATUS_BAD_REQUEST, "The source '" + sourceText + "' and target text '" + targetText + "' must be the same for a bidirectional relationship.");
}
relationshipLabels.add(new RelationshipLabel(sourceText, uniqueName));
} else {
throw new WebScriptException(Status.STATUS_BAD_REQUEST, "Unknown relationship type '" + type + "'.");
}
}
return sortRelationshipLabelsByName(relationshipLabels);
}
use of org.alfresco.module.org_alfresco_module_rm.relationship.RelationshipType in project records-management by Alfresco.
the class CustomReferenceDefinitionsGet method createRelationshipDefinitionData.
/**
* Creates relationship definition data for the ftl template
*
* @param relationshipDefinitions The relationship definitions
* @return The relationship definition data
*/
private List<Map<String, String>> createRelationshipDefinitionData(Set<RelationshipDefinition> relationshipDefinitions) {
List<Map<String, String>> relationshipDefinitionData = new ArrayList<Map<String, String>>();
for (RelationshipDefinition relationshipDefinition : relationshipDefinitions) {
Map<String, String> data = new HashMap<String, String>();
RelationshipType type = relationshipDefinition.getType();
RelationshipDisplayName displayName = relationshipDefinition.getDisplayName();
if (RelationshipType.BIDIRECTIONAL.equals(type)) {
data.put(LABEL, displayName.getSourceText());
} else if (RelationshipType.PARENTCHILD.equals(type)) {
data.put(SOURCE, displayName.getSourceText());
data.put(TARGET, displayName.getTargetText());
} else {
StringBuilder sb = new StringBuilder();
sb.append("Unsupported relationship type '").append(type).append("'.");
throw new WebScriptException(Status.STATUS_BAD_REQUEST, sb.toString());
}
data.put(REF_ID, relationshipDefinition.getUniqueName());
data.put(REFERENCE_TYPE, type.toString().toLowerCase());
relationshipDefinitionData.add(data);
}
return relationshipDefinitionData;
}
Aggregations