Search in sources :

Example 1 with CalculateVersionLabelPolicy

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;
}
Also used : CalculateVersionLabelPolicy(org.alfresco.repo.version.VersionServicePolicies.CalculateVersionLabelPolicy) VersionServiceException(org.alfresco.service.cmr.version.VersionServiceException) SerialVersionLabelPolicy(org.alfresco.repo.version.common.versionlabel.SerialVersionLabelPolicy)

Aggregations

CalculateVersionLabelPolicy (org.alfresco.repo.version.VersionServicePolicies.CalculateVersionLabelPolicy)1 SerialVersionLabelPolicy (org.alfresco.repo.version.common.versionlabel.SerialVersionLabelPolicy)1 VersionServiceException (org.alfresco.service.cmr.version.VersionServiceException)1