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 _Constructor { 43 44 public static Annotation_ getAnnotation(Constructor constructor, Class annotationType) { 45 return MethodDescriptor.getInstance(constructor).getAnnotation(annotationType); 46 } 47 48 public static Annotation_[] getAnnotations(Constructor constructor) { 49 return MethodDescriptor.getInstance(constructor).getAnnotations(); 50 } 51 52 public static Annotation_[] getDeclaredAnnotations(Constructor constructor) { 53 return MethodDescriptor.getInstance(constructor).getDeclaredAnnotations(); 54 } 55 56 public static Type[] getGenericExceptionTypes(Constructor constructor) { 57 Type[] types = MethodDescriptor.getInstance(constructor).getGenericExceptionTypes(); 58 return types != null ? types : constructor.getExceptionTypes(); 59 } 60 61 public static Type[] getGenericParameterTypes(Constructor constructor) { 62 Type[] types = MethodDescriptor.getInstance(constructor).getGenericParameterTypes(); 63 return types != null ? types : constructor.getParameterTypes(); 64 } 65 66 public static Annotation_[][] getParameterAnnotations(Constructor constructor) { 67 return MethodDescriptor.getInstance(constructor).getParameterAnnotations(); 68 } 69 70 public static TypeVariable[] getTypeParameters(Constructor constructor) { 71 return MethodDescriptor.getInstance(constructor).getTypeParameters(); 72 } 73 74 public static boolean isAnnotationPresent(Constructor constructor, Class annotationType) { 75 return MethodDescriptor.getInstance(constructor).isAnnotationPresent(annotationType); 76 } 77 78 public static boolean isSynthetic(Constructor constructor) { 79 return MethodDescriptor.getInstance(constructor).isAccess(Opcodes.ACC_SYNTHETIC); 80 } 81 82 public static boolean isVarArgs(Constructor constructor) { 83 return MethodDescriptor.getInstance(constructor).isAccess(Opcodes.ACC_VARARGS); 84 } 85 86 public static String toGenericString(Constructor constructor) { 87 StringBuilder builder = new StringBuilder (); 88 if (constructor.getModifiers() != 0) { 89 builder.append(Modifier.toString(constructor.getModifiers())).append(' '); 90 } 91 TypeVariable[] typeParameters = getTypeParameters(constructor); 92 if (typeParameters.length > 0) { 93 RuntimeTools.append(builder.append('<'), typeParameters).append("> "); 94 } 95 builder.append(RuntimeTools.getString(constructor.getDeclaringClass())); 96 RuntimeTools.append(builder.append('('), getGenericParameterTypes(constructor)).append(')'); 97 Type[] exceptionTypes = getGenericExceptionTypes(constructor); 98 if (exceptionTypes.length > 0) { 99 RuntimeTools.append(builder.append(" throws "), exceptionTypes); 100 } 101 return builder.toString(); 102 } 103 104 } 105 | Popular Tags |