Project

General

Profile

Download (2.7 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
    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
}
(4-4/10)