private TypeReference getMostOuterTypeRef(TypeReference typeRef) { int maxDecraringDepth = typeRef.getFullName().split("(\\.|\\$)").length; for (int i = 0; i < maxDecraringDepth; i++) { TypeReference declaringTypeRef = typeRef.getDeclaringType(); if (declaringTypeRef == null) { break; } else { typeRef = declaringTypeRef; } } if (typeRef.getName().contains("$")) { return getMostOuterTypeRefBySlowLookuping(typeRef); } return typeRef; }
TypeReference declaringTypeRef = typeRef.getDeclaringType(); if (declaringTypeRef != null) { TypeDefinition declaringTypeDef = declaringTypeRef.resolve();
@Override public TypeReference getDeclaringType() { return _genericDefinition.getDeclaringType(); }
@Override public TypeReference getDeclaringType() { return _genericDefinition.getDeclaringType(); }
@Override public TypeReference getDeclaringType() { return _genericTypeDefinition.getDeclaringType(); }
@Override public TypeReference getDeclaringType() { return _genericDefinition.getDeclaringType(); }
@Override public TypeReference getDeclaringType() { return _genericDefinition.getDeclaringType(); }
@Override public TypeReference getDeclaringType() { return _genericTypeDefinition.getDeclaringType(); }
@Override public TypeReference getDeclaringType() { return _genericTypeDefinition.getDeclaringType(); }
public boolean isNested() { return getDeclaringType() != null && !isGenericParameter(); }
@Override public TypeReference getDeclaringType() { exitIfNeeded(); return _genericDefinition.getDeclaringType(); }
@Override public TypeReference getDeclaringType() { exitIfNeeded(); return _genericDefinition.getDeclaringType(); }
public TypeDefinition resolve() { final TypeReference declaringType = getDeclaringType(); return declaringType != null ? declaringType.resolve(this) : null; }
public TypeDefinition resolve() { final TypeReference declaringType = getDeclaringType(); return declaringType != null ? declaringType.resolve(this) : null; }
public TypeDefinition resolve() { final TypeReference declaringType = getDeclaringType(); return declaringType != null ? declaringType.resolve(this) : null; }
@Override public Boolean visitClassType(final TypeReference t, final TypeReference s) { final TypeReference superType = asSuper(s, t); return superType != null && StringUtilities.equals(superType.getInternalName(), s.getInternalName()) && // You're not allowed to write // Vector<Object> vec = new Vector<String>(); // But with wildcards you can write // Vector<? extends Object> vec = new Vector<String>(); // which means that subtype checking must be done // here instead of same-type checking (via containsType). (!(s instanceof IGenericInstance) || containsTypeRecursive(s, superType)) && isSubTypeNoCapture(superType.getDeclaringType(), s.getDeclaringType()); }
@Override public GenericParameter findTypeVariable(final String name) { for (final GenericParameter genericParameter : getGenericParameters()) { if (StringUtilities.equals(genericParameter.getName(), name)) { return genericParameter; } } final TypeReference declaringType = getDeclaringType(); if (declaringType != null) { return declaringType.findTypeVariable(name); } return null; }
@Override public GenericParameter findTypeVariable(final String name) { for (final GenericParameter genericParameter : getGenericParameters()) { if (StringUtilities.equals(genericParameter.getName(), name)) { return genericParameter; } } final TypeReference declaringType = getDeclaringType(); if (declaringType != null) { return declaringType.findTypeVariable(name); } return null; }
@Override public GenericParameter findTypeVariable(final String name) { for (final GenericParameter genericParameter : getGenericParameters()) { if (StringUtilities.equals(genericParameter.getName(), name)) { return genericParameter; } } final TypeReference declaringType = getDeclaringType(); if (declaringType != null) { return declaringType.findTypeVariable(name); } return null; }
public static TypeReference asMemberOf(final TypeReference innerType, final TypeReference baseType) { VerifyArgument.notNull(innerType, "innerType"); VerifyArgument.notNull(baseType, "baseType"); final Map<TypeReference, TypeReference> map = adapt(innerType.getDeclaringType(), baseType); return TypeSubstitutionVisitor.instance().visit(innerType, map); }