076e18cfe67ddc6e867070fb77226f6e1637d0b4
[utils] / security / src / main / java / org / wamblee / security / authorization / OperationRegistry.java
1 /*
2  * Copyright 2005 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.wamblee.security.authorization;
17
18 /**
19  * Utility to map between a list of operations and a string based
20  * on the names of the operations.   
21  *
22  * @author Erik Brakkee
23  */
24 public interface OperationRegistry {
25     /**
26      * Gets the supported operations for a given resource class.
27      *
28      * @param aResourceClass Resource class.
29      *
30      * @return Supported operations for that class.
31      */
32     Operation[] getOperations(Class aResourceClass);
33
34     /**
35      * Converts a number of operations to a string.
36      *
37      * @param aOperations Operations to convert.
38      *
39      * @return String representation of the allowed operations.
40      */
41     String encode(Operation[] aOperations);
42
43     /**
44      * Converts an operations string to an array of operations.
45      *
46      * @param aResourceClass Resource class.
47      * @param aOperationsString Operations string as returned by {@link
48      *        #encode(Operation[])}.
49      *
50      * @return Operations array.
51      */
52     Operation[] decode(Class aResourceClass, String aOperationsString);
53
54     /**
55      * Converts an operations string to an array of operations.
56      *
57      * @param aOperationsString Operations string as returned by {@link
58      *        #encode(Operation[])}.
59      *
60      * @return Operations array.
61      */
62     Operation[] decode(String aOperationsString);
63 }