src/share/classes/java/lang/reflect/Executable.java

Print this page




  72         return false;
  73     }
  74 
  75     Annotation[][] parseParameterAnnotations(byte[] parameterAnnotations) {
  76         return AnnotationParser.parseParameterAnnotations(
  77                parameterAnnotations,
  78                sun.misc.SharedSecrets.getJavaLangAccess().
  79                getConstantPool(getDeclaringClass()),
  80                getDeclaringClass());
  81     }
  82 
  83     void separateWithCommas(Class<?>[] types, StringBuilder sb) {
  84         for (int j = 0; j < types.length; j++) {
  85             sb.append(Field.getTypeName(types[j]));
  86             if (j < (types.length - 1))
  87                 sb.append(",");
  88         }
  89 
  90     }
  91 
  92     void printModifiersIfNonzero(StringBuilder sb, int mask) {
  93         int mod = getModifiers() & mask;
  94         if (mod != 0) {
  95             sb.append(Modifier.toString(mod)).append(' ');
  96         }



  97     }
  98 
  99     String sharedToString(int modifierMask,

 100                           Class<?>[] parameterTypes,
 101                           Class<?>[] exceptionTypes) {
 102         try {
 103             StringBuilder sb = new StringBuilder();
 104 
 105             printModifiersIfNonzero(sb, modifierMask);
 106             specificToStringHeader(sb);
 107 
 108             sb.append('(');
 109             separateWithCommas(parameterTypes, sb);
 110             sb.append(')');
 111             if (exceptionTypes.length > 0) {
 112                 sb.append(" throws ");
 113                 separateWithCommas(exceptionTypes, sb);
 114             }
 115             return sb.toString();
 116         } catch (Exception e) {
 117             return "<" + e + ">";
 118         }
 119     }
 120 
 121     /**
 122      * Generate toString header information specific to a method or
 123      * constructor.
 124      */
 125     abstract void specificToStringHeader(StringBuilder sb);
 126 
 127     String sharedToGenericString(int modifierMask) {
 128         try {
 129             StringBuilder sb = new StringBuilder();
 130 
 131             printModifiersIfNonzero(sb, modifierMask);
 132 
 133             TypeVariable<?>[] typeparms = getTypeParameters();
 134             if (typeparms.length > 0) {
 135                 boolean first = true;
 136                 sb.append('<');
 137                 for(TypeVariable<?> typeparm: typeparms) {
 138                     if (!first)
 139                         sb.append(',');
 140                     // Class objects can't occur here; no need to test
 141                     // and call Class.getName().
 142                     sb.append(typeparm.toString());
 143                     first = false;
 144                 }
 145                 sb.append("> ");
 146             }
 147 
 148             specificToGenericStringHeader(sb);
 149 
 150             sb.append('(');
 151             Type[] params = getGenericParameterTypes();




  72         return false;
  73     }
  74 
  75     Annotation[][] parseParameterAnnotations(byte[] parameterAnnotations) {
  76         return AnnotationParser.parseParameterAnnotations(
  77                parameterAnnotations,
  78                sun.misc.SharedSecrets.getJavaLangAccess().
  79                getConstantPool(getDeclaringClass()),
  80                getDeclaringClass());
  81     }
  82 
  83     void separateWithCommas(Class<?>[] types, StringBuilder sb) {
  84         for (int j = 0; j < types.length; j++) {
  85             sb.append(Field.getTypeName(types[j]));
  86             if (j < (types.length - 1))
  87                 sb.append(",");
  88         }
  89 
  90     }
  91 
  92     void printModifiersIfNonzero(StringBuilder sb, int mask, boolean isDefault) {
  93         int mod = getModifiers() & mask;
  94         if (mod != 0) {
  95             sb.append(Modifier.toString(mod)).append(' ');
  96         }
  97         if (isDefault) {
  98             sb.append("default ");
  99         }
 100     }
 101 
 102     String sharedToString(int modifierMask,
 103                           boolean isDefault,
 104                           Class<?>[] parameterTypes,
 105                           Class<?>[] exceptionTypes) {
 106         try {
 107             StringBuilder sb = new StringBuilder();
 108 
 109             printModifiersIfNonzero(sb, modifierMask, isDefault);
 110             specificToStringHeader(sb);
 111 
 112             sb.append('(');
 113             separateWithCommas(parameterTypes, sb);
 114             sb.append(')');
 115             if (exceptionTypes.length > 0) {
 116                 sb.append(" throws ");
 117                 separateWithCommas(exceptionTypes, sb);
 118             }
 119             return sb.toString();
 120         } catch (Exception e) {
 121             return "<" + e + ">";
 122         }
 123     }
 124 
 125     /**
 126      * Generate toString header information specific to a method or
 127      * constructor.
 128      */
 129     abstract void specificToStringHeader(StringBuilder sb);
 130 
 131     String sharedToGenericString(int modifierMask, boolean isDefault) {
 132         try {
 133             StringBuilder sb = new StringBuilder();
 134 
 135             printModifiersIfNonzero(sb, modifierMask, isDefault);
 136 
 137             TypeVariable<?>[] typeparms = getTypeParameters();
 138             if (typeparms.length > 0) {
 139                 boolean first = true;
 140                 sb.append('<');
 141                 for(TypeVariable<?> typeparm: typeparms) {
 142                     if (!first)
 143                         sb.append(',');
 144                     // Class objects can't occur here; no need to test
 145                     // and call Class.getName().
 146                     sb.append(typeparm.toString());
 147                     first = false;
 148                 }
 149                 sb.append("> ");
 150             }
 151 
 152             specificToGenericStringHeader(sb);
 153 
 154             sb.append('(');
 155             Type[] params = getGenericParameterTypes();