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;
17  
18  /**
19   * Enumeration of all the supported status.
20   *
21   * @author Massimiliano Ziccardi
22   */
23  public enum Status {
24      /**
25       * Service status 'OK'.
26       */
27      OK(0, 0),
28      /**
29       * Service status 'WARNING'.
30       */
31      WARNING(1, 2),
32      /**
33       * Service status 'CRITICAL'.
34       */
35      CRITICAL(2, 3),
36      /**
37       * Service status 'UNKNOWN'.
38       */
39      UNKNOWN(3, 1);
40  
41      /**
42       * Integer constant for the OK status.
43       */
44      private static final int OK_STATUS = 0;
45      /**
46       * Integer constant for the WARNING status.
47       */
48      private static final int WARNING_STATUS = 1;
49      /**
50       * Integer constant for the CRITICAL status.
51       */
52      private static final int CRITICAL_STATUS = 2;
53      /**
54       * Integer constant for the UNKNOWN status.
55       */
56      private static final int UNKNOWN_STATUS = 3;
57  
58      /**
59       * The enumeration int value.
60       */
61      private final int intValue;
62  
63      /**
64       * The serverity value.
65       */
66      private final int severityValue;
67  
68      /**
69       * Builds an enumeration with the given int value.
70       *
71       * @param iValue
72       *            The value
73       * @param severity
74       *            The severity of the status
75       */
76      Status(final int iValue, final int severity) {
77          intValue = iValue;
78          severityValue = severity;
79      }
80  
81      /**
82       * Returns the int value of the enum.
83       *
84       * @return The int value
85       */
86      public int intValue() {
87          return intValue;
88      }
89  
90      /**
91       * Returns the enum corresponding with the given int value.
92       *
93       * @param intValue
94       *            The int value to be converted
95       * @return A {@link Status} enum. Null if not found
96       */
97      public static Status fromIntValue(final int intValue) {
98          switch (intValue) {
99          case OK_STATUS:
100             return OK;
101         case WARNING_STATUS:
102             return WARNING;
103         case CRITICAL_STATUS:
104             return CRITICAL;
105         case UNKNOWN_STATUS:
106         default:
107             return UNKNOWN;
108         }
109     }
110 
111     /**
112      * @return The severity as an int value (higher is more severe)
113      */
114     public int getSeverity() {
115         return severityValue;
116     }
117 }