use of org.alfresco.repo.version.VersionServicePolicies.CalculateVersionLabelPolicy in project alfresco-repository by Alfresco.
the class AbstractVersionServiceImpl method invokeCalculateVersionLabel.
/**
* Invoke the calculate version label policy behaviour
*
* @param classRef QName
* @param preceedingVersion Version
* @param versionNumber int
* @return String
*/
protected String invokeCalculateVersionLabel(QName classRef, Version preceedingVersion, int versionNumber, Map<String, Serializable> versionProperties) {
String versionLabel = null;
Collection<CalculateVersionLabelPolicy> behaviours = this.calculateVersionLabelDelegate.getList(classRef);
if (behaviours.size() == 0) {
// Default the version label to the SerialVersionLabelPolicy
SerialVersionLabelPolicy defaultVersionLabelPolicy = new SerialVersionLabelPolicy();
versionLabel = defaultVersionLabelPolicy.calculateVersionLabel(classRef, preceedingVersion, versionNumber, versionProperties);
} else if (behaviours.size() == 1) {
// Call the policy behaviour
CalculateVersionLabelPolicy[] arr = behaviours.toArray(new CalculateVersionLabelPolicy[] {});
versionLabel = arr[0].calculateVersionLabel(classRef, preceedingVersion, versionNumber, versionProperties);
} else {
// Error since we can only deal with a single caculate version label policy
throw new VersionServiceException("More than one CalculateVersionLabelPolicy behaviour has been registered for the type " + classRef.toString());
}
return versionLabel;
}
Aggregations