Standalone TCA with EELF Logger
[dcaegen2/analytics/tca-gen2.git] / dcae-analytics / dcae-analytics-tca-model / src / main / java / org / onap / dcae / analytics / tca / model / policy / Direction.java
1 /*
2  * ================================================================================
3  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  * ============LICENSE_END=========================================================
17  *
18  */
19
20 package org.onap.dcae.analytics.tca.model.policy;
21
22 import java.math.BigDecimal;
23
24 /**
25  * Enum for Threshold Direction
26  *
27  * @author Rajiv Singla
28  */
29 public enum Direction implements TcaPolicyModel {
30
31     EQUAL {
32         @Override
33         public Boolean operate(final BigDecimal value1, final BigDecimal value2) {
34             return value1.compareTo(value2) == 0;
35         }
36     },
37     LESS {
38         @Override
39         public Boolean operate(final BigDecimal value1, final BigDecimal value2) {
40             return value1.compareTo(value2) < 0;
41         }
42     },
43     LESS_OR_EQUAL {
44         @Override
45         public Boolean operate(final BigDecimal value1, final BigDecimal value2) {
46             return value1.compareTo(value2) <= 0;
47         }
48     },
49     GREATER {
50         @Override
51         public Boolean operate(final BigDecimal value1, final BigDecimal value2) {
52             return value1.compareTo(value2) > 0;
53         }
54     },
55     GREATER_OR_EQUAL {
56         @Override
57         public Boolean operate(final BigDecimal value1, final BigDecimal value2) {
58             return value1.compareTo(value2) >= 0;
59         }
60     };
61
62     /**
63      * Configure logic for a particular Direction
64      *
65      * @param value1 left operand for Direction operation
66      * @param value2 right operand for Direction operation
67      *
68      * @return result of operation for the direction logic
69      */
70     public abstract Boolean operate(final BigDecimal value1, final BigDecimal value2);
71
72
73 }