1 32 package net.sf.retrotranslator.runtime.java.lang.reflect; 33 34 import java.lang.reflect.*; 35 import net.sf.retrotranslator.runtime.asm.Opcodes; 36 import net.sf.retrotranslator.runtime.impl.*; 37 import net.sf.retrotranslator.runtime.java.lang.annotation.Annotation_; 38 39 42 public class _Field { 43 44 public static Annotation_ getAnnotation(Field field, Class annotationType) { 45 return FieldDescriptor.getInstance(field).getAnnotation(annotationType); 46 } 47 48 public static Annotation_[] getAnnotations(Field field) { 49 return FieldDescriptor.getInstance(field).getAnnotations(); 50 } 51 52 public static Annotation_[] getDeclaredAnnotations(Field field) { 53 return FieldDescriptor.getInstance(field).getDeclaredAnnotations(); 54 } 55 56 public static Type getGenericType(Field field) { 57 Type type = FieldDescriptor.getInstance(field).getGenericType(); 58 return type != null ? type : field.getType(); 59 } 60 61 public static boolean isAnnotationPresent(Field field, Class annotationType) { 62 return FieldDescriptor.getInstance(field).isAnnotationPresent(annotationType); 63 } 64 65 public static boolean isEnumConstant(Field field) { 66 return FieldDescriptor.getInstance(field).isAccess(Opcodes.ACC_ENUM); 67 } 68 69 public static boolean isSynthetic(Field field) { 70 return FieldDescriptor.getInstance(field).isAccess(Opcodes.ACC_SYNTHETIC); 71 } 72 73 public static String toGenericString(Field field) { 74 StringBuilder builder = new StringBuilder (); 75 if (field.getModifiers() != 0) { 76 builder.append(Modifier.toString(field.getModifiers())).append(' '); 77 } 78 builder.append(RuntimeTools.getString(getGenericType(field))).append(' '); 79 builder.append(RuntimeTools.getString(field.getDeclaringClass())).append('.'); 80 return builder.append(field.getName()).toString(); 81 } 82 } 83 | Popular Tags |