diff --git a/source/java/org/alfresco/cmis/CMISScope.java b/source/java/org/alfresco/cmis/CMISScope.java index 486d3bee60..55534bcacd 100644 --- a/source/java/org/alfresco/cmis/CMISScope.java +++ b/source/java/org/alfresco/cmis/CMISScope.java @@ -24,9 +24,6 @@ */ package org.alfresco.cmis; -import java.util.HashMap; -import java.util.Map; - /** * The scope for a CMIS name @@ -38,39 +35,34 @@ import java.util.Map; * @author andyh * */ -public enum CMISScope +public enum CMISScope implements EnumLabel { - OBJECT ('O'), - RELATIONSHIP ('R'), - DOCUMENT ('D'), - FOLDER ('F'), - POLICY ('P'), - UNKNOWN ('U'); + OBJECT ("O"), + RELATIONSHIP ("R"), + DOCUMENT ("D"), + FOLDER ("F"), + POLICY ("P"), + UNKNOWN ("U"); - private static Map discriminatorMap = new HashMap(10); - static + private String label; + + /** + * Construct + * + * @param label + */ + CMISScope(String label) { - for (CMISScope scope : CMISScope.values()) - { - discriminatorMap.put(scope.discriminator, scope); - } - } - - private char discriminator; - - CMISScope(char discriminator) - { - this.discriminator = discriminator; + this.label = label; } - public char discriminator() + /* (non-Javadoc) + * @see org.alfresco.cmis.EnumLabel#label() + */ + public String getLabel() { - return discriminator; + return label; } - public static CMISScope toScope(char discrimator) - { - return discriminatorMap.get(discrimator); - } - + public static EnumFactory FACTORY = new EnumFactory(CMISScope.class); } diff --git a/source/java/org/alfresco/cmis/mapping/CMISMapping.java b/source/java/org/alfresco/cmis/mapping/CMISMapping.java index 88a2073b49..2040b7704f 100644 --- a/source/java/org/alfresco/cmis/mapping/CMISMapping.java +++ b/source/java/org/alfresco/cmis/mapping/CMISMapping.java @@ -234,7 +234,7 @@ public class CMISMapping implements InitializingBean } // Alfresco type id - CMISScope scope = CMISScope.toScope(typeId.charAt(0)); + CMISScope scope = (CMISScope)CMISScope.FACTORY.fromLabel(typeId.substring(0, 1)); if (scope == null) { throw new AlfrescoRuntimeException("Malformed type id '" + typeId + "'; discriminator " + typeId.charAt(0) + " unknown"); @@ -257,7 +257,7 @@ public class CMISMapping implements InitializingBean if (typeId == null) { StringBuilder builder = new StringBuilder(128); - builder.append(scope.discriminator()); + builder.append(scope.getLabel()); builder.append("/"); builder.append(buildPrefixEncodedString(typeQName, false)); return new CMISTypeId(scope, builder.toString(), typeQName);