80a68248a3acc3e6bae753e946bb5805db4bb19a
[policy/models.git] / models-interactions / model-yaml / src / main / java / org / onap / policy / controlloop / policy / PolicyResult.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * policy-yaml
4  * ================================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2019 Nordix Foundation.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  * 
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.controlloop.policy;
23
24 public enum PolicyResult {
25     /**
26      * Operation was successful.
27      */
28     SUCCESS("Success"),
29     /**
30      * Operation failed.
31      */
32     FAILURE("Failure"),
33     /**
34      * Operation failed due to maximum retries being met.
35      */
36     FAILURE_RETRIES("Failure_Retries"),
37     /**
38      * Operation failed due to timeout occurring.
39      */
40     FAILURE_TIMEOUT("Failure_Timeout"),
41     /**
42      * Operation failed due to an exception.
43      */
44     FAILURE_EXCEPTION("Failure_Exception"), 
45     /**
46      * Operation failed since Guard did not permit.
47      */
48     FAILURE_GUARD("Failure_Guard")
49     ;
50     
51     private String result;
52     
53     private PolicyResult(String result) {
54         this.result = result;
55     }
56     
57     @Override
58     public String toString() {
59         return this.result;
60     }
61     
62     /**
63      * Convert to a result.
64      * 
65      * @param result result string
66      * @return Result object
67      */
68     public static PolicyResult toResult(String result) {
69         if (result.equalsIgnoreCase(SUCCESS.toString())) {
70             return SUCCESS;
71         }
72         if (result.equalsIgnoreCase(FAILURE.toString())) {
73             return FAILURE;
74         }
75         if (result.equalsIgnoreCase(FAILURE_RETRIES.toString())) {
76             return FAILURE_RETRIES;
77         }
78         if (result.equalsIgnoreCase(FAILURE_TIMEOUT.toString())) {
79             return FAILURE_TIMEOUT;
80         }
81         if (result.equalsIgnoreCase(FAILURE_EXCEPTION.toString())) {
82             return FAILURE_EXCEPTION;
83         }
84         if (result.equalsIgnoreCase(FAILURE_GUARD.toString())) {
85             return FAILURE_GUARD;
86         }
87         return null;
88     }
89
90 }