View Javadoc

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;
17  
18  import it.jnrpe.utils.thresholds.LegacyRange;
19  
20  import java.math.BigDecimal;
21  
22  /**
23   * Utility class for evaluating threshold This class conforms to the nagios
24   * plugin guidelines
25   * (http://nagiosplug.sourceforge.net/developer-guidelines.html
26   * #THRESHOLDFORMAT). The generalised range format is: [@]start:end Values are
27   * interpreted this way:
28   * <ul>
29   * <li>if range is of format "start:" and end is not specified, assume end is
30   * infinity
31   * <li>to specify negative infinity, use "~"
32   * <li>alert is raised if metric is outside start and end range (inclusive of
33   * endpoints)
34   * <li>if range starts with "@", then alert if inside this range (inclusive of
35   * endpoints)
36   * </ul>
37   * start and ":" is not required if start=0.
38   *
39   * @author Massimiliano Ziccardi
40   * @deprecated Use the {@link it.jnrpe.utils.thresholds.ReturnValueBuilder}
41   * together with the
42   * {@link it.jnrpe.utils.thresholds.ThresholdsEvaluatorBuilder} instead.
43   */
44  @Deprecated
45  public final class ThresholdUtil {
46      /**
47       * Private default constructor to avoid instantiation.
48       */
49      private ThresholdUtil() {
50  
51      }
52  
53      /**
54       * Returns <code>true</code> if the value <code>iValue</code> falls into the
55       * range <code>sRange</code>.
56       *
57       * @param thresholdString
58       *            The range
59       * @param value
60       *            The value
61       * @return <code>true</code> if the value <code>iValue</code> falls into the
62       * @throws BadThresholdException
63       *             -
64       */
65      public static boolean isValueInRange(final String thresholdString,
66              final int value) throws BadThresholdException {
67          return new LegacyRange(thresholdString).isValueInside(value);
68      }
69  
70      /**
71       * Returns <code>true</code> if the value <code>dalue</code> falls into the
72       * range <code>sRange</code>.
73       *
74       * @param thresholdString
75       *            The range
76       * @param value
77       *            The value given range
78       * @return <code>true</code> if the given value falls inside the given range
79       * @throws BadThresholdException
80       *             -
81       */
82      public static boolean isValueInRange(final String thresholdString,
83              final BigDecimal value) throws BadThresholdException {
84          return new LegacyRange(thresholdString).isValueInside(value);
85      }
86  
87      /**
88       * Returns <code>true</code> if the value <code>dalue</code> falls into the
89       * range <code>sRange</code>.
90       *
91       * @param thresholdString
92       *            The range
93       * @param value
94       *            The value given range
95       * @return <code>true</code> if the given value falls inside the given range
96       * @throws BadThresholdException
97       *             -
98       */
99      public static boolean isValueInRange(final String thresholdString,
100             final Long value) throws BadThresholdException {
101         return new LegacyRange(thresholdString).isValueInside(new BigDecimal(
102                 value));
103     }
104 }