Project

General

Profile

Download (2.84 KB) Statistics
| Branch: | Tag: | Revision:
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
    AGENTBASE,
26
    ANNOTATION,
27
    ANNOTATIONTYPE,
28
    CDMMETADATA,
29
    CLASSIFICATION,
30
    COLLECTION,
31
    DESCRIPTIONBASE,
32
    DESCRIPTIONELEMENTBASE,
33
    DESCRIPTIONELEMENTSOURCE,
34
    DESCRIPTIVEDATASET,
35
    EXTENSION,
36
    EXTENSIONTYPE,
37
    FEATURE,
38
    FEATURENODE,
39
    FEATURETREE,
40
    GATHERINGEVENT,
41
    GRANTEDAUTHORITYIMPL,
42
    GROUP,
43
    HOMOTYPICALGROUP,
44
    HYBRIDRELATIONSHIP,
45
    IDENTIFIABLESOURCE,
46
    IDENTIFIER,
47
    LANGUAGE,
48
    LANGUAGESTRING,
49
    MARKER,
50
    MARKERTYPE,
51
    MEDIA,
52
    MEDIAREPRESENTATION,
53
    MEDIAREPRESENTATIONPART,
54
    NAMEDAREA,
55
    NAMEDAREALEVEL,
56
    NAMERELATIONSHIP,
57
    NAMETYPEDESIGNATION,
58
    NOMENCLATURALSTATUS,
59
    NOMENCLATURALSTATUSTYPE,
60
    PRESENCEABSENCETERM,
61
    RANK,
62
    REFERENCE,
63
    REGISTRATION,
64
    REPRESENTATION,
65
    SPECIMENOROBSERVATIONBASE,
66
    SPECIMENTYPEDESIGNATION,
67
    TAXONBASE,
68
    TAXONNAME,
69
    TAXONNODE,
70
    TAXONRELATIONSHIP,
71
    TEAMORPERSONBASE,
72
    TERMVOCABULARY,
73
    USER,
74
    ;
75

    
76

    
77
    /**
78
     * return the appropriate CdmPermissionClass for the given Object
79
     *
80
     * @param o
81
     * @return the CdmPermissionClass or null
82
     */
83
    public static CdmPermissionClass getValueOf(CdmBase o){
84
        return CdmPermissionClass.getValueOf(o.getClass());
85
    }
86

    
87
    /**
88
     * return the appropriate CdmPermissionClass for the given Object
89
     *
90
     * @param o
91
     * @return the CdmPermissionClass or null
92
     */
93
    public static CdmPermissionClass getValueOf(Class o){
94

    
95
        CdmPermissionClass permissionClass = _valueOf(o);
96
        if(permissionClass == null) {
97
            Logger.getLogger(CdmPermissionClass.class).error("Permission class support for " + o + " not implemented");
98
        }
99
        return permissionClass;
100

    
101
    }
102

    
103

    
104

    
105
    /**
106
     * @param o
107
     * @return
108
     */
109
    protected static CdmPermissionClass _valueOf(Class o) {
110
        try{
111
            String normalizedName = o.getSimpleName().toUpperCase();
112
            return CdmPermissionClass.valueOf(normalizedName);
113
        } catch(IllegalArgumentException e){
114
            if (CdmBase.class.isAssignableFrom(o)){
115
                return _valueOf(o.getSuperclass());
116
            }
117

    
118
        }
119
        return null;
120
    }
121
}
(4-4/11)