New Optimization Policy
[policy/engine.git] / PolicyEngineAPI / src / main / java / org / onap / policy / api / DictionaryType.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * PolicyEngineAPI
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.api;
22
23 import com.fasterxml.jackson.annotation.JsonCreator;
24
25 public enum DictionaryType {
26     /**
27      * Indicates Common Dictionaries.
28      */
29     Common("Common"),
30     /**
31      * Indicates Action Policy Dictionaries
32      */
33     Action("Action"),
34     /**
35      * Indicates ClosedLoop Policy Dictionaries.
36      */
37     ClosedLoop("ClosedLoop"),
38     /**
39      * Indicates Firewall Config Policy Dictionaries.
40      */
41     Firewall("Firewall"),
42     /**
43      * Indicates Decision Policy Dictionaries.
44      */
45     Decision("Decision"),
46     /**
47      * Indicates BRMS Policy Dictionaries.
48      */
49     BRMS("BRMS"),
50     /**
51      * Indicates DCAE Micro Service Policy Dictionaries.
52      */
53     MicroService("MicroService"),
54     /**
55      * Indicates Optimization Policy Dictionaries
56      */
57     Optimization("Optimization"),
58     /**
59      * Indicates Descriptive Scope Dictionaries
60      */
61     DescriptiveScope("DescriptiveScope"),
62     /**
63      * Indicates Policy Scope Dictionaries
64      */
65     PolicyScope("PolicyScope"),
66     /**
67      * Indicates Enforcer Dictionaries
68      */
69     Enforcer("Enforcer"),
70     /**
71      * Indicates SafePolicy Dictionaries
72      */
73     SafePolicy("SafePolicy"),
74     /**
75      * Enum support entry to extend dictionary
76      */
77     Extended("Extended");
78
79     private final String name;
80
81     private DictionaryType(final String typeName) {
82         this.name = typeName;
83     }
84
85     /**
86      * Returns the <code>String</code> format of Type for this
87      * <code>PolicyClass</code>
88      * 
89      * @return the <code>String</code> of the Type for this
90      *         <code>PolicyClass</code>
91      */
92     @Override
93     public String toString() {
94         return this.name;
95     }
96
97     @JsonCreator
98     public static DictionaryType create(final String value) {
99         for (final DictionaryType type : values()) {
100             if (type.toString().equalsIgnoreCase(value) || type.name().equalsIgnoreCase(value)) {
101                 return type;
102             }
103         }
104         throw new IllegalArgumentException("Invalid value: " + value);
105     }
106
107 }