String getName() { if (_name == null) { _name = _runtimeType._appendClassName(new StringBuilder(), false, true).toString(); } return _name; }
public StringBuilder appendSignature(final StringBuilder sb) { if (isGenericParameter()) { sb.append('T'); sb.append(getName()); sb.append(';'); return sb; } return _appendClassSignature(sb); }
public StringBuilder appendErasedSignature(final StringBuilder sb) { if (isGenericType() && !isGenericTypeDefinition()) { return getGenericTypeDefinition().appendErasedSignature(sb); } return _appendErasedClassSignature(sb); }
@Override public StringBuilder appendSimpleDescription(final StringBuilder sb) { if (_superBound != Bottom) { sb.append("? super "); if (_superBound.isGenericParameter()) { return sb.append(_superBound.getName()); } return _superBound.appendSimpleDescription(sb); } if (_extendsBound == Types.Object) { return sb.append("?"); } sb.append("? extends "); if (_extendsBound.isGenericParameter()) { return sb.append(_extendsBound.getName()); } return _extendsBound.appendSimpleDescription(sb); }
public StringBuilder appendGenericSignature(final StringBuilder sb) { StringBuilder s = sb; if (isGenericParameter()) { final Type<?> extendsBound = getExtendsBound(); s.append(getName()); if (extendsBound.isInterface()) { s.append(':'); s = extendsBound.appendSignature(s); if (isGenericType()) { final TypeList genericParameters = getTypeBindings().getBoundTypes(); final int count = genericParameters.size(); s = genericParameters.get(i).appendGenericSignature(s); final Type baseType = getBaseType(); final TypeList interfaces = getInterfaces(); s = Types.Object.appendSignature(s); s = baseType.appendSignature(s); s = interfaceType.appendSignature(s);
protected StringBuilder _appendClassDescription(final StringBuilder sb) { StringBuilder s = sb; s.append(getClassFullName()); if (isGenericType()) { final TypeList typeArguments = getTypeBindings().getBoundTypes(); final int count = typeArguments.size(); if (count > 0) { s.append('<'); //noinspection ForLoopReplaceableByForEach for (int i = 0; i < count; ++i) { s = typeArguments.get(i)._appendErasedClassSignature(s); } s.append('>'); } } return s; }
@Override public StringBuilder appendBriefDescription(final StringBuilder sb) { StringBuilder s = sb; if (isStatic()) { s.append(Modifier.STATIC.toString()); s.append(' '); } final Type fieldType = getFieldType(); if (fieldType.isGenericParameter()) { s.append(fieldType.getName()); } else { s = fieldType.appendBriefDescription(s); } s.append(' '); s.append(getName()); return s; }
public StringBuilder appendSimpleDescription(final StringBuilder sb) { StringBuilder s = _appendClassName(sb, false, false); if (isGenericType()) { final TypeList typeArguments = getTypeBindings().getBoundTypes(); final int count = typeArguments.size(); if (count > 0) { s.append('<'); //noinspection ForLoopReplaceableByForEach for (int i = 0; i < count; ++i) { if (i != 0) { s.append(", "); } s = typeArguments.get(i).appendSimpleDescription(s); } s.append('>'); } } return s; }
public Boolean visitScope(final MemberInfo scope, final Type<?> s) { if (scope instanceof MethodBase) { final MethodBase method = (MethodBase) scope; if (method.containsGenericParameter(s)) { return Boolean.TRUE; } final Type<?> declaringType = method.getDeclaringType(); if (declaringType != null && !declaringType.isStatic()) { return declaringType.accept(this, s); } return Boolean.FALSE; } if (scope instanceof Type<?>) { final Type<?> type = (Type<?>) scope; if (type.containsGenericParameter(s)) { return Boolean.TRUE; } if (!type.isStatic()) { final Type<?> declaringType = type.getDeclaringType(); if (declaringType != null) { return declaringType.accept(this, s); } return Boolean.FALSE; } } return Boolean.FALSE; }
public StringBuilder appendBriefDescription(final StringBuilder sb) { StringBuilder s = _appendClassName(sb, true, true); if (isGenericType()) { final TypeList typeArguments = getTypeBindings().getBoundTypes(); final int count = typeArguments.size(); if (count > 0) { s.append('<'); //noinspection ForLoopReplaceableByForEach for (int i = 0; i < count; ++i) { if (i != 0) { s.append(", "); } s = typeArguments.get(i).appendBriefDescription(s); } s.append('>'); } } return s; }
@Override public StringBuilder appendBriefDescription(final StringBuilder sb) { sb.append(getFullName()); final Type<?> upperBound = getExtendsBound(); if (upperBound != null && upperBound != Types.Object) { sb.append(" extends "); if (upperBound.isGenericParameter() || upperBound == getDeclaringType()) { return sb.append(upperBound.getFullName()); } return upperBound.appendErasedDescription(sb); } return sb; }
@Override public StringBuilder appendErasedDescription(final StringBuilder sb) { final Constructor<?> rawConstructor = getRawConstructor(); final TypeList parameterTypes = Type.list(rawConstructor.getParameterTypes()); StringBuilder s = PrimitiveTypes.Void.appendBriefDescription(sb); s.append(' '); s.append(getName()); s.append('('); for (int i = 0, n = parameterTypes.size(); i < n; ++i) { if (i != 0) { s.append(", "); } s = parameterTypes.get(i).appendErasedDescription(s); } s.append(')'); return s; }
@Override public StringBuilder appendSignature(final StringBuilder sb) { StringBuilder s = sb; if (isGenericMethod()) { final GenericParameterBuilder<?>[] genericParameters = genericParameterBuilders; final int count = genericParameters.length; if (count > 0) { s.append('<'); //noinspection ForLoopReplaceableByForEach for (int i = 0; i < count; ++i) { final Type type = genericParameters[i]; s = type.appendGenericSignature(s); } s.append('>'); } } s.append('('); final TypeList parameterTypes = getParameterTypes(); for (int i = 0, n = parameterTypes.size(); i < n; ++i) { s = parameterTypes.get(i).appendSignature(s); } s.append(')'); s = getReturnType().appendSignature(s); return s; }
@Override public StringBuilder appendSimpleDescription(final StringBuilder sb) { sb.append(getFullName()); final Type<?> upperBound = getExtendsBound(); if (upperBound != null && upperBound != Types.Object) { sb.append(" extends "); if (upperBound.isGenericParameter() || upperBound == getDeclaringType()) { return sb.append(upperBound.getName()); } return upperBound.appendErasedDescription(sb); } return sb; }
@Override public StringBuilder appendSignature(final StringBuilder sb) { final ParameterList parameters = getParameters(); StringBuilder s = sb; s.append('('); for (int i = 0, n = parameters.size(); i < n; ++i) { final ParameterInfo p = parameters.get(i); s = p.getParameterType().appendSignature(s); } s.append(')'); s = PrimitiveTypes.Void.appendErasedSignature(s); return s; }
@Override public StringBuilder appendErasedDescription(final StringBuilder sb) { StringBuilder s = sb; for (final javax.lang.model.element.Modifier modifier : Flags.asModifierSet(getModifiers())) { s.append(modifier.toString()); s.append(' '); } s = getFieldType().getErasedType().appendErasedDescription(s); s.append(' '); s.append(getName()); return s; }
@Override public StringBuilder appendSignature(final StringBuilder sb) { return super.appendSignature(sb); }
public final R visit(final Type<?> t) { return t.accept(this, null); } }
@Override public StringBuilder appendErasedSignature(final StringBuilder sb) { final Constructor<?> rawConstructor = getRawConstructor(); final TypeList parameterTypes = Type.list(rawConstructor.getParameterTypes()); StringBuilder s = sb; s.append('('); for (int i = 0, n = parameterTypes.size(); i < n; ++i) { s = parameterTypes.get(i).appendErasedSignature(s); } s.append(')'); s = PrimitiveTypes.Void.appendErasedSignature(s); return s; }
@Override public Void visitArrayType(final Type<?> type, final MemberInfo scope) { super.visitArrayType(type, scope); _frames.push(new VerifierFrame(FrameType.TYPE_SIGNATURE, type)); type.getElementType().accept(this, scope); _frames.pop(); return null; }