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