1 17 package org.alfresco.repo.version.common.versionlabel; 18 19 import java.io.Serializable ; 20 import java.util.Map ; 21 22 import org.alfresco.repo.version.VersionModel; 23 import org.alfresco.service.cmr.version.Version; 24 import org.alfresco.service.cmr.version.VersionType; 25 import org.alfresco.service.namespace.QName; 26 27 32 public class SerialVersionLabelPolicy 33 { 34 36 44 public String calculateVersionLabel( 45 QName classRef, 46 Version preceedingVersion, 47 int versionNumber, 48 Map <String , Serializable > versionProperties) 49 { 50 SerialVersionLabel serialVersionNumber = null; 51 52 if (preceedingVersion != null) 53 { 54 serialVersionNumber = new SerialVersionLabel(preceedingVersion.getVersionLabel()); 55 56 VersionType versionType = (VersionType)versionProperties.get(VersionModel.PROP_VERSION_TYPE); 57 if (VersionType.MAJOR.equals(versionType) == true) 58 { 59 serialVersionNumber.majorIncrement(); 60 } 61 else 62 { 63 serialVersionNumber.minorIncrement(); 64 } 65 } 66 else 67 { 68 serialVersionNumber = new SerialVersionLabel(null); 69 } 70 71 return serialVersionNumber.toString(); 72 } 73 74 79 private class SerialVersionLabel 80 { 81 84 private static final String DELIMITER = "."; 85 86 89 private int majorRevisionNumber = 1; 90 91 94 private int minorRevisionNumber = 0; 95 96 101 public SerialVersionLabel(String versionLabel) 102 { 103 if (versionLabel != null && versionLabel.length() != 0) 104 { 105 int iIndex = versionLabel.indexOf(DELIMITER); 106 String majorString = versionLabel.substring(0, iIndex); 107 String minorString = versionLabel.substring(iIndex+1); 108 109 this.majorRevisionNumber = Integer.parseInt(majorString); 110 this.minorRevisionNumber = Integer.parseInt(minorString); 111 } 112 } 113 114 118 public void majorIncrement() 119 { 120 this.majorRevisionNumber += 1; 121 this.minorRevisionNumber = 0; 122 } 123 124 127 public void minorIncrement() 128 { 129 this.minorRevisionNumber += 1; 130 } 131 132 135 public String toString() 136 { 137 return this.majorRevisionNumber + DELIMITER + this.minorRevisionNumber; 138 } 139 } 140 } 141 | Popular Tags |