minor
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / persistence / hibernate / permission / CdmPermissionClass.java
old mode 100644 (file)
new mode 100755 (executable)
index 0634bbe..6489eb9
@@ -8,6 +8,8 @@
 */\r
 package eu.etaxonomy.cdm.persistence.hibernate.permission;\r
 \r
+import org.apache.log4j.Logger;\r
+\r
 import eu.etaxonomy.cdm.model.CdmBaseType;\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
 \r
@@ -16,21 +18,59 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
  *\r
  * @author k.luther\r
  * @author a.kohlbecker\r
- * @date 06.07.2011\r
+ * @since 06.07.2011\r
  */\r
 public enum CdmPermissionClass {\r
-    USER,\r
-    DESCRIPTIONBASE,\r
-    DESCRIPTIONELEMENTBASE,\r
-    TAXONBASE,\r
     ALL,\r
-    TAXONNODE,\r
+    ANNOTATION,\r
+    ANNOTATIONTYPE,\r
+    CDMMETADATA,\r
     CLASSIFICATION,\r
+    COLLECTION,\r
+    DESCRIPTIONBASE,\r
+    DESCRIPTIONELEMENTBASE,\r
+    DESCRIPTIONELEMENTSOURCE,\r
+    DESCRIPTIVEDATASET,\r
+    EXTENSION,\r
+    EXTENSIONTYPE,\r
+    FEATURE,\r
+    FEATURENODE,\r
+    FEATURETREE,\r
+    GATHERINGEVENT,\r
+    GRANTEDAUTHORITYIMPL,\r
+    GROUP,\r
+    HOMOTYPICALGROUP,\r
+    HYBRIDRELATIONSHIP,\r
+    IDENTIFIABLESOURCE,\r
+    LANGUAGE,\r
+    LANGUAGESTRING,\r
+    MARKER,\r
+    MARKERTYPE,\r
+    MEDIA,\r
+    MEDIAREPRESENTATION,\r
+    MEDIAREPRESENTATIONPART,\r
+    NAMEDAREA,\r
+    NAMEDAREALEVEL,\r
+    NAMERELATIONSHIP,\r
+    NAMETYPEDESIGNATION,\r
+    NOMENCLATURALSTATUS,\r
+    NOMENCLATURALSTATUSTYPE,\r
+    SPECIMENOROBSERVATIONBASE,\r
+    SPECIMENTYPEDESIGNATION,\r
+    RANK,\r
     REFERENCE,\r
+    REGISTRATION,\r
+    REPRESENTATION,\r
+    TAXONBASE,\r
     TAXONNAME,\r
+    TAXONNODE,\r
+    TAXONRELATIONSHIP,\r
     TEAMORPERSONBASE,\r
-    REGISTRATION,\r
-    TYPEDESIGNATIONBASE;\r
+    TERMVOCABULARY,\r
+    USER,\r
+    AGENTBASE\r
+    ;\r
+\r
 \r
     /**\r
      * return the appropriate CdmPermissionClass for the given Object\r
@@ -42,8 +82,6 @@ public enum CdmPermissionClass {
         return CdmPermissionClass.getValueOf(o.getClass());\r
     }\r
 \r
-\r
-\r
     /**\r
      * return the appropriate CdmPermissionClass for the given Object\r
      *\r
@@ -52,16 +90,30 @@ public enum CdmPermissionClass {
      */\r
     public static CdmPermissionClass getValueOf(Class o){\r
 \r
+        CdmPermissionClass permissionClass = _valueOf(o);\r
+        if(permissionClass == null) {\r
+            Logger.getLogger(CdmPermissionClass.class).error("Permission class support for " + o + " not implemented");\r
+        }\r
+        return permissionClass;\r
+\r
+    }\r
+\r
+\r
+\r
+    /**\r
+     * @param o\r
+     * @return\r
+     */\r
+    protected static CdmPermissionClass _valueOf(Class o) {\r
         try{\r
             String normalizedName = o.getSimpleName().toUpperCase();\r
             return CdmPermissionClass.valueOf(normalizedName);\r
         } catch(IllegalArgumentException e){\r
             if (CdmBase.class.isAssignableFrom(o)){\r
-                return getValueOf(o.getSuperclass());\r
+                return _valueOf(o.getSuperclass());\r
             }\r
 \r
         }\r
-\r
         return null;\r
     }\r
 }\r