bugfix for transaction in ExtensionMapper and adapting Proxy narrorwing logging,...
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / persistence / hibernate / permission / Operation.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 java.util.EnumSet;
12
13
14 /**
15 * @author k.luther
16 * @date 06.07.2011
17 *
18 */
19 public class Operation {
20
21 private Operation(){
22
23 }
24
25 final static public EnumSet<CRUD> CREATE = EnumSet.of(CRUD.CREATE);
26
27 final static public EnumSet<CRUD> READ = EnumSet.of(CRUD.READ);
28
29 final static public EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
30
31 final static public EnumSet<CRUD> DELETE = EnumSet.of(CRUD.DELETE);
32
33 final static public EnumSet<CRUD> ALL = EnumSet.allOf(CRUD.class);
34
35 final static public EnumSet<CRUD> ADMIN = ALL; // FIXME remove?
36
37 final static public EnumSet<CRUD> NONE = EnumSet.noneOf(CRUD.class);
38
39 public static EnumSet<CRUD> fromString(String string){
40 if(string.equals("ALL")){
41 return ALL;
42 }
43 if(string.equals("ADMIN")){
44 return ADMIN;
45 }
46 if(string.equals("NONE")){
47 return NONE;
48 }
49 return EnumSet.of(CRUD.valueOf(string));
50 }
51
52 public static boolean isOperation(Object o){
53 try {
54 return o instanceof EnumSet<?> && ALL.containsAll((EnumSet<?>)o);
55 } catch (Throwable e){
56 return false;
57 }
58 }
59
60 }
61
62