add some more CdmPermissionClasses
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / persistence / hibernate / permission / CdmPermissionClass.java
1 /**
2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.cdm.persistence.hibernate.permission;
10
11 import org.apache.log4j.Logger;
12
13 import eu.etaxonomy.cdm.model.CdmBaseType;
14 import eu.etaxonomy.cdm.model.common.CdmBase;
15
16 /**
17 * see also {@link CdmBaseType}
18 *
19 * @author k.luther
20 * @author a.kohlbecker
21 * @date 06.07.2011
22 */
23 public enum CdmPermissionClass {
24 ALL,
25 ANNOTATION,
26 CDMMETADATA,
27 CLASSIFICATION,
28 COLLECTION,
29 DESCRIPTIONBASE,
30 DESCRIPTIONELEMENTBASE,
31 DESCRIPTIONELEMENTSOURCE,
32 EXTENSION,
33 EXTENSIONTYPE,
34 FEATURE,
35 FEATURENODE,
36 FEATURETREE,
37 GATHERINGEVENT,
38 GRANTEDAUTHORITYIMPL,
39 GROUP,
40 HOMOTYPICALGROUP,
41 HYBRIDRELATIONSHIP,
42 IDENTIFIABLESOURCE,
43 LANGUAGESTRING,
44 MARKER,
45 MARKERTYPE,
46 MEDIA,
47 MEDIAREPRESENTATION,
48 MEDIAREPRESENTATIONPART,
49 NAMEDAREA,
50 NAMERELATIONSHIP,
51 NAMETYPEDESIGNATION,
52 NOMENCLATURALSTATUS,
53 SPECIMENOROBSERVATIONBASE,
54 SPECIMENTYPEDESIGNATION,
55 RANK,
56 REFERENCE,
57 REGISTRATION,
58 REPRESENTATION,
59 TAXONBASE,
60 TAXONNAME,
61 TAXONNODE,
62 TEAMORPERSONBASE,
63 TERMVOCABULARY,
64 USER,
65 WORKINGSET,
66 ;
67
68
69 /**
70 * return the appropriate CdmPermissionClass for the given Object
71 *
72 * @param o
73 * @return the CdmPermissionClass or null
74 */
75 public static CdmPermissionClass getValueOf(CdmBase o){
76 return CdmPermissionClass.getValueOf(o.getClass());
77 }
78
79 /**
80 * return the appropriate CdmPermissionClass for the given Object
81 *
82 * @param o
83 * @return the CdmPermissionClass or null
84 */
85 public static CdmPermissionClass getValueOf(Class o){
86
87 CdmPermissionClass permissionClass = _valueOf(o);
88 if(permissionClass == null) {
89 Logger.getLogger(CdmPermissionClass.class).error("Permission class support for " + o + " not implemented");
90 }
91 return permissionClass;
92
93 }
94
95
96
97 /**
98 * @param o
99 * @return
100 */
101 protected static CdmPermissionClass _valueOf(Class o) {
102 try{
103 String normalizedName = o.getSimpleName().toUpperCase();
104 return CdmPermissionClass.valueOf(normalizedName);
105 } catch(IllegalArgumentException e){
106 if (CdmBase.class.isAssignableFrom(o)){
107 return _valueOf(o.getSuperclass());
108 }
109
110 }
111 return null;
112 }
113 }