Merge "Merge 'security-basecamp' branch into master with CBOR"
[platform/upstream/iotivity.git] / android / android_api / base / src / main / java / org / iotivity / base / RequestHandlerFlag.java
1 /*\r
2  * //******************************************************************\r
3  * //\r
4  * // Copyright 2015 Intel Corporation.\r
5  * //\r
6  * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
7  * //\r
8  * // Licensed under the Apache License, Version 2.0 (the "License");\r
9  * // you may not use this file except in compliance with the License.\r
10  * // You may obtain a copy of the License at\r
11  * //\r
12  * //      http://www.apache.org/licenses/LICENSE-2.0\r
13  * //\r
14  * // Unless required by applicable law or agreed to in writing, software\r
15  * // distributed under the License is distributed on an "AS IS" BASIS,\r
16  * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17  * // See the License for the specific language governing permissions and\r
18  * // limitations under the License.\r
19  * //\r
20  * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
21  */\r
22 \r
23 package org.iotivity.base;\r
24 \r
25 import java.util.EnumSet;\r
26 \r
27 public enum RequestHandlerFlag {\r
28     INIT(1 << 0),\r
29     REQUEST(1 << 1),\r
30     OBSERVER(1 << 2),;\r
31 \r
32     private int value;\r
33 \r
34     private RequestHandlerFlag(int value) {\r
35         this.value = value;\r
36     }\r
37 \r
38     public int getValue() {\r
39         return this.value;\r
40     }\r
41 \r
42     public static EnumSet<RequestHandlerFlag> convertToEnumSet(int value) {\r
43         EnumSet<RequestHandlerFlag> flagSet = null;\r
44 \r
45         for (RequestHandlerFlag v : values()) {\r
46             if (0 != (value & v.getValue())) {\r
47                 if (flagSet == null) {\r
48                     flagSet = EnumSet.of(v);\r
49                 } else {\r
50                     flagSet.add(v);\r
51                 }\r
52             }\r
53         }\r
54 \r
55         if (null == flagSet || flagSet.isEmpty()) {\r
56             throw new IllegalArgumentException("Unexpected RequestHandlerFlag value");\r
57         }\r
58 \r
59         return flagSet;\r
60     }\r
61 }\r