1 22 package org.jboss.reflect.plugins.javassist; 23 24 import java.util.HashMap ; 25 26 import javassist.CtClass; 27 28 import org.jboss.reflect.plugins.EnumConstantInfoImpl; 29 import org.jboss.reflect.spi.EnumConstantInfo; 30 import org.jboss.reflect.spi.EnumInfo; 31 32 37 public class JavassistEnumInfo extends JavassistTypeInfo implements EnumInfo 38 { 39 40 private static final long serialVersionUID = 3546645408219542832L; 41 42 43 protected EnumConstantInfoImpl[] enumConstants; 44 45 46 protected HashMap <String , EnumConstantInfo> constants = new HashMap <String , EnumConstantInfo>(); 47 48 public JavassistEnumInfo(JavassistTypeInfoFactoryImpl factory, CtClass ctClass, Class <? extends Object > clazz) 49 { 50 super(factory, ctClass, clazz); 51 } 52 57 public void setEnumConstants(EnumConstantInfoImpl[] enumConstants) 58 { 59 for (int i = 0; i < enumConstants.length; i++) 60 constants.put(enumConstants[i].getName(), enumConstants[i]); 61 } 62 63 public EnumConstantInfo[] getEnumConstants() 64 { 65 return enumConstants; 66 } 67 68 public EnumConstantInfo getEnumConstant(String name) 69 { 70 return constants.get(name); 71 } 72 73 public boolean equals(Object o) 74 { 75 if (this == o) return true; 76 if (!(o instanceof JavassistEnumInfo)) return false; 77 78 final JavassistEnumInfo enumInfo = (JavassistEnumInfo) o; 79 80 if (!getName().equals(enumInfo.getName())) return false; 81 82 return true; 83 } 84 85 public int hashCode() 86 { 87 return getName().hashCode(); 88 } 89 90 } 91 | Popular Tags |