KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > snmp4j > agent > mo > jmx > types > EnumStringType


1 /*_############################################################################
2   _##
3   _## SNMP4J-AgentJMX - EnumStringType.java
4   _##
5   _## Copyright (C) 2006-2007 Frank Fock (SNMP4J.org)
6   _##
7   _## This program is free software; you can redistribute it and/or modify
8   _## it under the terms of the GNU General Public License version 2 as
9   _## published by the Free Software Foundation.
10   _##
11   _## This program is distributed in the hope that it will be useful,
12   _## but WITHOUT ANY WARRANTY; without even the implied warranty of
13   _## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14   _## GNU General Public License for more details.
15   _##
16   _## You should have received a copy of the GNU General Public License
17   _## along with this program; if not, write to the Free Software
18   _## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19   _## MA 02110-1301 USA
20   _##
21   _##########################################################################*/

22 package org.snmp4j.agent.mo.jmx.types;
23
24 import javax.management.*;
25
26 public class EnumStringType extends TypedAttribute {
27
28   private Enum JavaDoc[] enumValues;
29   private Class JavaDoc enumClass;
30   private int offset = 0;
31
32   public EnumStringType(String JavaDoc name, Class JavaDoc enumClass, Enum JavaDoc[] enumValues) {
33     super(name, Integer JavaDoc.class);
34     this.enumClass = enumClass;
35     this.enumValues = enumValues;
36   }
37
38   public Enum JavaDoc[] getEnumValues() {
39     return enumValues;
40   }
41
42   public int getOffset() {
43     return offset;
44   }
45
46   public Object JavaDoc transformFromNative(Object JavaDoc nativeValue, ObjectName objectName) {
47     Enum JavaDoc en;
48     if (nativeValue instanceof Enum JavaDoc) {
49       en = (Enum JavaDoc)nativeValue;
50     }
51     else {
52       en = Enum.valueOf(enumClass, nativeValue.toString());
53     }
54     return offset + en.ordinal();
55   }
56
57   public Object JavaDoc transformToNative(Object JavaDoc transformedValue,
58                                   Object JavaDoc oldNativeValue, ObjectName objectName) {
59     int i = ((Integer JavaDoc)transformedValue).intValue();
60     return enumValues[i-offset];
61   }
62
63 }
64
Popular Tags