cleanup CdmPermissionClass
[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 CDMMETADATA,
26 CLASSIFICATION,
27 COLLECTION,
28 DESCRIPTIONBASE,
29 DESCRIPTIONELEMENTBASE,
30 FEATURE,
31 GATHERINGEVENT,
32 GRANTEDAUTHORITYIMPL,
33 GROUP,
34 HOMOTYPICALGROUP,
35 LANGUAGESTRING,
36 MEDIA,
37 MEDIAREPRESENTATION,
38 MEDIAREPRESENTATIONPART,
39 NAMEDAREA,
40 NAMERELATIONSHIP,
41 SPECIMENOROBSERVATIONBASE,
42 SPECIMENTYPEDESIGNATION,
43 REFERENCE,
44 REGISTRATION,
45 REPRESENTATION,
46 TAXONBASE,
47 TAXONNAME,
48 TAXONNODE,
49 TEAMORPERSONBASE,
50 USER,
51 WORKINGSET,
52 ;
53
54
55 /**
56 * return the appropriate CdmPermissionClass for the given Object
57 *
58 * @param o
59 * @return the CdmPermissionClass or null
60 */
61 public static CdmPermissionClass getValueOf(CdmBase o){
62 return CdmPermissionClass.getValueOf(o.getClass());
63 }
64
65 /**
66 * return the appropriate CdmPermissionClass for the given Object
67 *
68 * @param o
69 * @return the CdmPermissionClass or null
70 */
71 public static CdmPermissionClass getValueOf(Class o){
72
73 CdmPermissionClass permissionClass = _valueOf(o);
74 if(permissionClass == null) {
75 Logger.getLogger(CdmPermissionClass.class).error("Permission class support for " + o + " not implemented");
76 }
77 return permissionClass;
78
79 }
80
81
82
83 /**
84 * @param o
85 * @return
86 */
87 protected static CdmPermissionClass _valueOf(Class o) {
88 try{
89 String normalizedName = o.getSimpleName().toUpperCase();
90 return CdmPermissionClass.valueOf(normalizedName);
91 } catch(IllegalArgumentException e){
92 if (CdmBase.class.isAssignableFrom(o)){
93 return _valueOf(o.getSuperclass());
94 }
95
96 }
97 return null;
98 }
99 }