fix #7405 Rename WorkingSet to DescriptiveDataSet
[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 * @since 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 DESCRIPTIVEDATASET,
33 EXTENSION,
34 EXTENSIONTYPE,
35 FEATURE,
36 FEATURENODE,
37 FEATURETREE,
38 GATHERINGEVENT,
39 GRANTEDAUTHORITYIMPL,
40 GROUP,
41 HOMOTYPICALGROUP,
42 HYBRIDRELATIONSHIP,
43 IDENTIFIABLESOURCE,
44 LANGUAGESTRING,
45 MARKER,
46 MARKERTYPE,
47 MEDIA,
48 MEDIAREPRESENTATION,
49 MEDIAREPRESENTATIONPART,
50 NAMEDAREA,
51 NAMERELATIONSHIP,
52 NAMETYPEDESIGNATION,
53 NOMENCLATURALSTATUS,
54 NOMENCLATURALSTATUSTYPE,
55 SPECIMENOROBSERVATIONBASE,
56 SPECIMENTYPEDESIGNATION,
57 RANK,
58 REFERENCE,
59 REGISTRATION,
60 REPRESENTATION,
61 TAXONBASE,
62 TAXONNAME,
63 TAXONNODE,
64 TEAMORPERSONBASE,
65 TERMVOCABULARY,
66 USER,
67 ;
68
69
70 /**
71 * return the appropriate CdmPermissionClass for the given Object
72 *
73 * @param o
74 * @return the CdmPermissionClass or null
75 */
76 public static CdmPermissionClass getValueOf(CdmBase o){
77 return CdmPermissionClass.getValueOf(o.getClass());
78 }
79
80 /**
81 * return the appropriate CdmPermissionClass for the given Object
82 *
83 * @param o
84 * @return the CdmPermissionClass or null
85 */
86 public static CdmPermissionClass getValueOf(Class o){
87
88 CdmPermissionClass permissionClass = _valueOf(o);
89 if(permissionClass == null) {
90 Logger.getLogger(CdmPermissionClass.class).error("Permission class support for " + o + " not implemented");
91 }
92 return permissionClass;
93
94 }
95
96
97
98 /**
99 * @param o
100 * @return
101 */
102 protected static CdmPermissionClass _valueOf(Class o) {
103 try{
104 String normalizedName = o.getSimpleName().toUpperCase();
105 return CdmPermissionClass.valueOf(normalizedName);
106 } catch(IllegalArgumentException e){
107 if (CdmBase.class.isAssignableFrom(o)){
108 return _valueOf(o.getSuperclass());
109 }
110
111 }
112 return null;
113 }
114 }