2  * ============LICENSE_START=======================================================
 
   3  *  Copyright (C) 2019 Nordix Foundation.
 
   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
 
   9  *      http://www.apache.org/licenses/LICENSE-2.0
 
  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.
 
  17  * SPDX-License-Identifier: Apache-2.0
 
  18  * ============LICENSE_END=========================================================
 
  21 package org.onap.policy.models.tosca.simple.concepts;
 
  23 import javax.persistence.Column;
 
  25 import lombok.EqualsAndHashCode;
 
  27 import lombok.NonNull;
 
  28 import lombok.ToString;
 
  30 import org.apache.commons.lang3.ObjectUtils;
 
  31 import org.onap.policy.models.tosca.authorative.concepts.ToscaConstraint;
 
  34  * This class represents a logical TOSCA constraint: =,>,>=,<,<=.
 
  36 @EqualsAndHashCode(callSuper = false)
 
  38 public class JpaToscaConstraintLogical extends JpaToscaConstraint {
 
  39     private static final long serialVersionUID = -2730203215911880756L;
 
  44     private JpaToscaConstraintOperation operation;
 
  49     private String compareTo;
 
  52      * Constructor to set operation.
 
  54      * @param operation the operation to set
 
  55      * @param compareTo the string to compare to
 
  57     public JpaToscaConstraintLogical(@NonNull final JpaToscaConstraintOperation operation,
 
  58             @NonNull final String compareTo) {
 
  59         this.operation = operation;
 
  60         this.compareTo = compareTo;
 
  64      * Authorative constructor.
 
  66      * @param authorativeConcept the authorative concept to copy from
 
  68     @SuppressWarnings("java:S2637")
 
  69     public JpaToscaConstraintLogical(final ToscaConstraint authorativeConcept) {
 
  70         super(authorativeConcept);
 
  74     public ToscaConstraint toAuthorative() {
 
  75         ToscaConstraint toscaConstraint = new ToscaConstraint();
 
  77         if (operation == null) {
 
  83                 toscaConstraint.setEqual(compareTo);
 
  87                 toscaConstraint.setGreaterThan(compareTo);
 
  91                 toscaConstraint.setGreaterOrEqual(compareTo);
 
  95                 toscaConstraint.setLessThan(compareTo);
 
  99                 toscaConstraint.setLessOrEqual(compareTo);
 
 106         return toscaConstraint;
 
 110     public void fromAuthorative(final ToscaConstraint toscaConstraint) {
 
 112         if (toscaConstraint.getEqual() != null) {
 
 113             operation = JpaToscaConstraintOperation.EQ;
 
 114             compareTo = toscaConstraint.getEqual();
 
 116         else if (toscaConstraint.getGreaterThan() != null) {
 
 117             operation = JpaToscaConstraintOperation.GT;
 
 118             compareTo = toscaConstraint.getGreaterThan();
 
 120         else if (toscaConstraint.getGreaterOrEqual() != null) {
 
 121             operation = JpaToscaConstraintOperation.GE;
 
 122             compareTo = toscaConstraint.getGreaterOrEqual();
 
 124         else if (toscaConstraint.getLessThan() != null) {
 
 125             operation = JpaToscaConstraintOperation.LT;
 
 126             compareTo = toscaConstraint.getLessThan();
 
 128         else if (toscaConstraint.getLessOrEqual() != null) {
 
 129             operation = JpaToscaConstraintOperation.LE;
 
 130             compareTo = toscaConstraint.getLessOrEqual();
 
 136     public int compareTo(JpaToscaConstraint otherConstraint) {
 
 137         if (otherConstraint == null) {
 
 140         if (this == otherConstraint) {
 
 143         if (getClass() != otherConstraint.getClass()) {
 
 144             return getClass().getName().compareTo(otherConstraint.getClass().getName());
 
 147         final JpaToscaConstraintLogical other = (JpaToscaConstraintLogical) otherConstraint;
 
 149         int result = ObjectUtils.compare(operation, other.operation);
 
 154         return ObjectUtils.compare(compareTo, other.compareTo);