*/\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
*\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
return CdmPermissionClass.getValueOf(o.getClass());\r
}\r
\r
-\r
-\r
/**\r
* return the appropriate CdmPermissionClass for the given Object\r
*\r
*/\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