1 /******************************************************************************* 2 * Copyright (c) 2007, 2014 Massimiliano Ziccardi 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 *******************************************************************************/ 16 package it.jnrpe.utils.thresholds; 17 18 import java.math.BigDecimal; 19 20 /** 21 * The threshold configuration. It is an interpretation of the threshold string. 22 * This object is populated by the threshold parser. 23 * 24 * @author Massimiliano Ziccardi 25 * 26 */ 27 class RangeConfig { 28 /** 29 * Indicate if the threshold is negated. 30 */ 31 private boolean negate = false; 32 33 /** 34 * Indicate if the left boundary is inclusive. 35 */ 36 private boolean leftInclusive = true; 37 38 /** 39 * Indicate if the right boundary is inclusive. 40 */ 41 private boolean rightInclusive = true; 42 43 /** 44 * The left boundary. Must be <code>null</code> if {@link #negativeInfinity} 45 * is <code>true</code> 46 */ 47 private BigDecimal startBoundary = null; 48 49 /** 50 * The right boundary. Must be <code>null</code> if 51 * {@link #positiveInfinity} is <code>true</code> 52 */ 53 private BigDecimal rightBoundary = null; 54 55 /** 56 * <code>true</code> if the left boundary is the negative infinity. 57 */ 58 private boolean negativeInfinity = false; 59 60 /** 61 * <code>true</code> if the right boundary is the positive infinity. 62 */ 63 private boolean positiveInfinity = false; 64 65 /** 66 * Returns whether this threshold must be negated. 67 * 68 * @return whether this threshold must be negated. 69 */ 70 public boolean isNegate() { 71 return negate; 72 } 73 74 /** 75 * Sets if this threshold must be negated. 76 * 77 * @param negateThrehsold 78 * <code>true</code> if must be negated 79 */ 80 void setNegate(final boolean negateThrehsold) { 81 this.negate = negateThrehsold; 82 } 83 84 /** 85 * Returns whether the left boundary is inclusive. 86 * 87 * @return whether the left boundary is inclusive. 88 */ 89 public boolean isLeftInclusive() { 90 return leftInclusive; 91 } 92 93 /** 94 * Returns whether the right boundary is inclusive. 95 * 96 * @return whether the right boundary is inclusive. 97 */ 98 public boolean isRightInclusive() { 99 return rightInclusive; 100 } 101 102 /** 103 * Sets if the left boundary must be inclusive. 104 * 105 * @param leftBoundaryInclusive 106 * <code>true</code> if left boundary is inclusive 107 */ 108 public void setLeftInclusive(final boolean leftBoundaryInclusive) { 109 this.leftInclusive = leftBoundaryInclusive; 110 } 111 112 /** 113 * Sets the left boundary to negative infinity if <code>true</code>. 114 * @param negativeInf <code>true</code> to set negative infinity 115 */ 116 public void setNegativeInfinity(final boolean negativeInf) { 117 negativeInfinity = negativeInf; 118 } 119 120 @Override 121 public String toString() { 122 StringBuffer sb = new StringBuffer() 123 .append("negate : " + negate) 124 .append("\nnegativeInfinity : " + negativeInfinity) 125 .append("\npositiveInfinity : " + positiveInfinity) 126 .append("\nleftInclusive : " + leftInclusive) 127 .append("\nrightInclusive : " + rightInclusive) 128 .append("\nleftBoundary : " + startBoundary) 129 .append("\nrightBoundary : " + rightBoundary); 130 131 return sb.toString(); 132 } 133 134 /** 135 * Sets the left boundary (numeric). 136 * @param start The left boundary (numeric) 137 */ 138 public void setLeftBoundary(final BigDecimal start) { 139 startBoundary = start; 140 } 141 142 /** 143 * Sets the right boundary to positive infinity if <code>true</code>. 144 * @param positiveInf <code>true</code> to set positive infinity 145 */ 146 public void setPositiveInfinity(final boolean positiveInf) { 147 positiveInfinity = positiveInf; 148 } 149 150 /** 151 * Sets the right boundary (numeric). 152 * @param right The right boundary (numeric) 153 */ 154 public void setRightBoundary(final BigDecimal right) { 155 rightBoundary = right; 156 } 157 158 /** 159 * Sets if the right boundary must be inclusive. 160 * 161 * @param rightIncl 162 * <code>true</code> if right boundary is inclusive 163 */ 164 public void setRightInclusive(final boolean rightIncl) { 165 rightInclusive = rightIncl; 166 } 167 168 /** 169 * @return The value of the left boundary. <code>null</code> if -inf. 170 */ 171 protected BigDecimal getLeftBoundary() { 172 return startBoundary; 173 } 174 175 /** 176 * @return The value of the right boundary. <code>null</code> if -inf. 177 */ 178 protected BigDecimal getRightBoundary() { 179 return rightBoundary; 180 } 181 182 /** 183 * @return <code>true</code> if the left boundary is -inf. 184 */ 185 protected boolean isNegativeInfinity() { 186 return negativeInfinity; 187 } 188 189 /** 190 * @return <code>true</code> if the right boundary is +inf. 191 */ 192 protected boolean isPositiveInfinity() { 193 return positiveInfinity; 194 } 195 }