Remove Target and TargetType
[policy/models.git] / models-interactions / model-actors / actorServiceProvider / src / main / java / org / onap / policy / controlloop / actorserviceprovider / OperationFinalResult.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * models
4  * ================================================================================
5  * Copyright (C) 2020 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.controlloop.actorserviceprovider;
22
23 public enum OperationFinalResult {
24     /**
25      * The Control Loop Policy successfully completed its Operations.
26      */
27     FINAL_SUCCESS("Final_Success"),
28     /**
29      * The Control Loop Policy was an Open Loop and is finished.
30      */
31     FINAL_OPENLOOP("Final_OpenLoop"),
32     /**
33      * The Control Loop Policy failed in its last Operation Policy. NOTE: Previous Operation Policies may have been
34      * successful.
35      */
36     FINAL_FAILURE("Final_Failure"),
37     /**
38      * The Control Loop Policy failed because the overall timeout was met.
39      */
40     FINAL_FAILURE_TIMEOUT("Final_Failure_Timeout"),
41     /**
42      * The Control Loop Policy failed because an Operation Policy met its retry limit.
43      */
44     FINAL_FAILURE_RETRIES("Final_Failure_Retries"),
45     /**
46      * The Control Loop Policy failed due to an exception.
47      */
48     FINAL_FAILURE_EXCEPTION("Final_Failure_Exception"),
49     /**
50      * The Control Loop Policy failed due to guard denied.
51      */
52     FINAL_FAILURE_GUARD("Final_Failure_Guard");
53
54     String result;
55
56     private OperationFinalResult(String result) {
57         this.result = result;
58     }
59
60     /**
61      * Converts to a result object.
62      *
63      * @param result input string
64      * @return result object
65      */
66     public static OperationFinalResult toResult(String result) {
67         if (result.equalsIgnoreCase(FINAL_SUCCESS.toString())) {
68             return FINAL_SUCCESS;
69         }
70         if (result.equalsIgnoreCase(FINAL_OPENLOOP.toString())) {
71             return FINAL_OPENLOOP;
72         }
73         if (result.equalsIgnoreCase(FINAL_FAILURE.toString())) {
74             return FINAL_FAILURE;
75         }
76         if (result.equalsIgnoreCase(FINAL_FAILURE_TIMEOUT.toString())) {
77             return FINAL_FAILURE_TIMEOUT;
78         }
79         if (result.equalsIgnoreCase(FINAL_FAILURE_RETRIES.toString())) {
80             return FINAL_FAILURE_RETRIES;
81         }
82         if (result.equalsIgnoreCase(FINAL_FAILURE_EXCEPTION.toString())) {
83             return FINAL_FAILURE_EXCEPTION;
84         }
85         if (result.equalsIgnoreCase(FINAL_FAILURE_GUARD.toString())) {
86             return FINAL_FAILURE_GUARD;
87         }
88         return null;
89     }
90
91     /**
92      * Check if the result really is a result.
93      *
94      * @param result string
95      * @param finalResult result object
96      * @return true if a result
97      */
98     public static boolean isResult(String result, OperationFinalResult finalResult) {
99         OperationFinalResult toResult = OperationFinalResult.toResult(result);
100         if (toResult == null) {
101             return false;
102         }
103         return toResult.equals(finalResult);
104     }
105
106 }