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