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