push addional code
[sdc.git] / openecomp-be / lib / openecomp-heat-lib / src / main / java / org / openecomp / sdc / heat / datatypes / HeatBoolean.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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.openecomp.sdc.heat.datatypes;
22
23 import org.openecomp.sdc.common.errors.CoreException;
24 import org.openecomp.sdc.common.errors.ErrorCategory;
25 import org.openecomp.sdc.common.errors.ErrorCode;
26 import org.openecomp.sdc.heat.services.ErrorCodes;
27
28 import java.util.HashSet;
29 import java.util.Set;
30
31 public class HeatBoolean {
32
33   private static Set<Object> heatFalse;
34   private static Set<Object> heatTrue;
35
36   static {
37
38
39     heatFalse = new HashSet<>();
40     heatFalse.add("f");
41     heatFalse.add(false);
42     heatFalse.add("false");
43     heatFalse.add("off");
44     heatFalse.add("n");
45     heatFalse.add("no");
46     heatFalse.add(0);
47
48     heatTrue = new HashSet<>();
49     heatTrue.add("t");
50     heatTrue.add(true);
51     heatTrue.add("true");
52     heatTrue.add("on");
53     heatTrue.add("y");
54     heatTrue.add("yes");
55     heatTrue.add(1);
56
57   }
58
59   /**
60    * Eval boolean.
61    *
62    * @param value the value
63    * @return the boolean
64    */
65   public static Boolean eval(Object value) {
66
67     if (value instanceof String) {
68       value = (String) ((String) value).toLowerCase();
69     }
70     if (heatFalse.contains(value)) {
71       return false;
72     } else if (heatTrue.contains(value)) {
73       return true;
74     } else {
75       throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withId(ErrorCodes.INVALID_BOOLEAN)
76           .withCategory(ErrorCategory.APPLICATION)
77           .withMessage("Invalid boolean value [" + value + "].").build());
78     }
79
80   }
81
82   /**
83    * Is value boolean boolean.
84    *
85    * @param value the value
86    * @return the boolean
87    */
88   public static boolean isValueBoolean(Object value) {
89     try {
90       Boolean answer = eval(value);
91       return true;
92     } catch (CoreException ce) {
93       return false;
94     }
95   }
96 }