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.plugins;
17  
18  import java.math.BigDecimal;
19  
20  /**
21   * This class represent a metric gathered from a plugin.
22   * 
23   * @author Massimiliano Ziccardi
24   */
25  public class Metric {
26  	/**
27  	 * The name of the metric.
28  	 */
29  	private final String metricName;
30  
31  	/**
32  	 * The message associated with this metric. This is the message that will be
33  	 * returned to Nagios if the user requested for this metric.
34  	 */
35  	private final String metricMessage;
36  
37  	/**
38  	 * The value of this metric.
39  	 */
40  	private final BigDecimal metricValue;
41  
42  	/**
43  	 * The maximum value for this metric.
44  	 */
45  	private final BigDecimal minValue;
46  
47  	/**
48  	 * The minimum value for this metric.
49  	 */
50  	private final BigDecimal maxValue;
51  
52  	/**
53  	 * Builds and initializes a metric object.
54  	 * 
55  	 * @param name
56  	 *            The name of the metric
57  	 * @param message
58  	 *            The message associated with this metric. For example: disk
59  	 *            usage 50%.
60  	 * @param value
61  	 *            The value of this metric (can't be null)
62  	 * @param min
63  	 *            The minimum value for this metric (can be null)
64  	 * @param max
65  	 *            The maximum value for this metric (can be null)
66  	 */
67  	public Metric(final String name, final String message,
68  			final BigDecimal value, final BigDecimal min, final BigDecimal max) {
69  		metricName = name;
70  		metricValue = value;
71  		minValue = min;
72  		maxValue = max;
73  		metricMessage = message;
74  	}
75  
76  	/**
77  	 * @return The name of this metric.
78  	 */
79  	public final String getMetricName() {
80  		return metricName;
81  	}
82  
83  	/**
84  	 * @return The value of this metric.
85  	 */
86  	public final BigDecimal getMetricValue() {
87  		return metricValue;
88  	}
89  
90  	/**
91  	 * @return The minimum value for this metric.
92  	 */
93  	public final BigDecimal getMinValue() {
94  		return minValue;
95  	}
96  
97  	/**
98  	 * @return The maximum value for this metric.
99  	 */
100 	public final BigDecimal getMaxValue() {
101 		return maxValue;
102 	}
103 
104 	/**
105 	 * @return The message associated with this metric.
106 	 */
107 	public final String getMessage() {
108 		return metricMessage;
109 	}
110 }