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(); |