@Override public StringBuilder appendDescription(final StringBuilder sb) { return appendBriefDescription(sb); }
@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 int hashCode() { return getGenericParameterPosition(); }
final GenericParameter genericParameter = new GenericParameter(typeVariable.getName(), typeVariable, i); final GenericParameter genericParameter = (GenericParameter) type; genericParameter.setDeclaringMethod(method); final java.lang.reflect.Type[] bounds = genericParameter.getRawTypeVariable().getBounds(); genericParameter.setUpperBound(boundType);
public GenericParameter visitTypeParameter(final Type<?> type, final TypeVariable typeVariable) { if (!(type instanceof GenericParameter)) { return null; } final GenericParameter genericParameter = (GenericParameter) type; final int position = ArrayUtilities.indexOf( typeVariable.getGenericDeclaration().getTypeParameters(), typeVariable ); if (position != genericParameter.getGenericParameterPosition()) { return null; } final Type declaringType = genericParameter.getDeclaringType(); if (declaringType != null && declaringType.getErasedClass() == typeVariable.getGenericDeclaration()) { return genericParameter; } final MethodInfo method = genericParameter.getDeclaringMethod(); if (method != null && method.getRawMethod() == typeVariable.getGenericDeclaration()) { return genericParameter; } return null; }
new GenericParameter( typeVariable.getName(), currentType, final java.lang.reflect.Type[] bounds = genericParameter.getRawTypeVariable().getBounds(); genericParameter.setUpperBound(boundType);
final TypeVariable<?> typeVariable = gp.getRawTypeVariable(); gp.setDeclaringMethod(this);
@Override public boolean equals(final Object obj) { if (obj == this) { return true; } if (obj == null) { return false; } if (obj instanceof GenericParameter<?>) { if (obj instanceof CapturedType<?>) { return false; } final GenericParameter<?> other = (GenericParameter<?>)obj; return other._position == _position && Comparer.equals(other.getRawTypeVariable(), _typeVariable); } return false; } }
@Override public StringBuilder appendErasedSignature(final StringBuilder sb) { return getExtendsBound().appendErasedSignature(sb); }
@Override @SuppressWarnings("unchecked") public Class<T> getErasedClass() { if (_erasedClass == null) { synchronized (CACHE_LOCK) { if (_erasedClass == null) { _erasedClass = (Class<T>) resolveErasedClass(); } } } return _erasedClass; }
@Override public String toString() { return getFullName(); }
public TypeVariable<?> getRawTypeVariable() { if (_typeVariable == null) { synchronized (CACHE_LOCK) { if (_typeVariable == null) { _typeVariable = resolveTypeVariable(); } } } return _typeVariable; }
@Override public Type<?> visitTypeParameter(final Type<?> type, final TypeBindings bindings) { if (bindings.containsGenericParameter(type)) { return bindings.getBoundType(type); } final Type<?> upperBound = type.getExtendsBound(); final Type<?> newUpperBound = visit(upperBound, bindings); if (newUpperBound != upperBound) { if (type.getDeclaringMethod() != null) { return new GenericParameter( type.getFullName(), (MethodInfo) type.getDeclaringMethod(), newUpperBound, type.getGenericParameterPosition() ); } return new GenericParameter( type.getFullName(), type.getDeclaringType(), newUpperBound, type.getGenericParameterPosition() ); } return type; }
final GenericParameter genericParameter = new GenericParameter(typeVariable.getName(), typeVariable, i); final GenericParameter genericParameter = (GenericParameter) type; genericParameter.setDeclaringMethod(method); final java.lang.reflect.Type[] bounds = genericParameter.getRawTypeVariable().getBounds(); genericParameter.setUpperBound(boundType);
public GenericParameter visitTypeParameter(final Type<?> type, final TypeVariable typeVariable) { if (!(type instanceof GenericParameter)) { return null; } final GenericParameter genericParameter = (GenericParameter) type; final int position = ArrayUtilities.indexOf( typeVariable.getGenericDeclaration().getTypeParameters(), typeVariable ); if (position != genericParameter.getGenericParameterPosition()) { return null; } final Type declaringType = genericParameter.getDeclaringType(); if (declaringType != null && declaringType.getErasedClass() == typeVariable.getGenericDeclaration()) { return genericParameter; } final MethodInfo method = genericParameter.getDeclaringMethod(); if (method != null && method.getRawMethod() == typeVariable.getGenericDeclaration()) { return genericParameter; } return null; }
new GenericParameter( typeVariable.getName(), currentType, final java.lang.reflect.Type[] bounds = genericParameter.getRawTypeVariable().getBounds(); genericParameter.setUpperBound(boundType);
final TypeVariable<?> typeVariable = gp.getRawTypeVariable(); gp.setDeclaringMethod(this);
@Override public boolean equals(final Object obj) { if (obj == this) { return true; } if (obj == null) { return false; } if (obj instanceof GenericParameter<?>) { if (obj instanceof CapturedType<?>) { return false; } final GenericParameter<?> other = (GenericParameter<?>)obj; return other._position == _position && Comparer.equals(other.getRawTypeVariable(), _typeVariable); } return false; } }
@Override public StringBuilder appendErasedSignature(final StringBuilder sb) { return getExtendsBound().appendErasedSignature(sb); }
@Override @SuppressWarnings("unchecked") public Class<T> getErasedClass() { if (_erasedClass == null) { synchronized (CACHE_LOCK) { if (_erasedClass == null) { _erasedClass = (Class<T>)resolveErasedClass(); } } } return _erasedClass; }