@Override public final TypeReference getUnderlyingType() { return _elementType.getUnderlyingType(); }
@Override public final TypeReference getUnderlyingType() { return _elementType.getUnderlyingType(); }
@Override public final TypeReference getUnderlyingType() { return _elementType.getUnderlyingType(); }
@Override public Void visitParameterizedType(final TypeReference t, final Map<TypeReference, TypeReference> map) { final TypeReference r = MetadataHelper.asSuper(t.getUnderlyingType(), argumentType); final TypeReference s = MetadataHelper.asSubType(argumentType, r != null ? r : t.getUnderlyingType()); if (s != null && s instanceof IGenericInstance) { final List<TypeReference> tArgs = ((IGenericInstance) t).getTypeArguments(); final List<TypeReference> sArgs = ((IGenericInstance) s).getTypeArguments(); if (tArgs.size() == sArgs.size()) { for (int i = 0, n = tArgs.size(); i < n; i++) { argumentType = sArgs.get(i); visit(tArgs.get(i), map); } } } return null; }
@Override public Void visitParameterizedType(final TypeReference t, final Map<TypeReference, TypeReference> map) { final TypeReference r = MetadataHelper.asSuper(t.getUnderlyingType(), argumentType); final TypeReference s = MetadataHelper.asSubType(argumentType, r != null ? r : t.getUnderlyingType()); if (s != null && s instanceof IGenericInstance) { final List<TypeReference> tArgs = ((IGenericInstance) t).getTypeArguments(); final List<TypeReference> sArgs = ((IGenericInstance) s).getTypeArguments(); if (tArgs.size() == sArgs.size()) { for (int i = 0, n = tArgs.size(); i < n; i++) { argumentType = sArgs.get(i); visit(tArgs.get(i), map); } } } return null; }
@Override public Void visitParameterizedType(final TypeReference t, final Map<TypeReference, TypeReference> map) { final TypeReference r = MetadataHelper.asSuper(t.getUnderlyingType(), argumentType); final TypeReference s = MetadataHelper.asSubType(argumentType, r != null ? r : t.getUnderlyingType()); if (s != null && s instanceof IGenericInstance) { final List<TypeReference> tArgs = ((IGenericInstance) t).getTypeArguments(); final List<TypeReference> sArgs = ((IGenericInstance) s).getTypeArguments(); if (tArgs.size() == sArgs.size()) { for (int i = 0, n = tArgs.size(); i < n; i++) { argumentType = sArgs.get(i); visit(tArgs.get(i), map); } } } return null; }
@Override public Void visitParameterizedType(final TypeReference t, final Map<TypeReference, TypeReference> map) { final TypeReference r = MetadataHelper.asSuper(t.getUnderlyingType(), argumentType); final TypeReference s = MetadataHelper.asSubType(argumentType, r != null ? r : t.getUnderlyingType()); if (s != null && s instanceof IGenericInstance) { final List<TypeReference> tArgs = ((IGenericInstance) t).getTypeArguments(); final List<TypeReference> sArgs = ((IGenericInstance) s).getTypeArguments(); if (tArgs.size() == sArgs.size()) { for (int i = 0, n = tArgs.size(); i < n; i++) { argumentType = sArgs.get(i); visit(tArgs.get(i), map); } } } return null; }
@Override public Void visitParameterizedType(final TypeReference t, final Map<TypeReference, TypeReference> map) { final TypeReference r = MetadataHelper.asSuper(t.getUnderlyingType(), argumentType); final TypeReference s = MetadataHelper.asSubType(argumentType, r != null ? r : t.getUnderlyingType()); if (s != null && s instanceof IGenericInstance) { final List<TypeReference> tArgs = ((IGenericInstance) t).getTypeArguments(); final List<TypeReference> sArgs = ((IGenericInstance) s).getTypeArguments(); if (tArgs.size() == sArgs.size()) { for (int i = 0, n = tArgs.size(); i < n; i++) { argumentType = sArgs.get(i); visit(tArgs.get(i), map); } } } return null; }
@Override public Void visitParameterizedType(final TypeReference t, final Map<TypeReference, TypeReference> map) { final TypeReference r = MetadataHelper.asSuper(t.getUnderlyingType(), argumentType); final TypeReference s = MetadataHelper.asSubType(argumentType, r != null ? r : t.getUnderlyingType()); if (s != null && s instanceof IGenericInstance) { final List<TypeReference> tArgs = ((IGenericInstance) t).getTypeArguments(); final List<TypeReference> sArgs = ((IGenericInstance) s).getTypeArguments(); if (tArgs.size() == sArgs.size()) { for (int i = 0, n = tArgs.size(); i < n; i++) { argumentType = sArgs.get(i); visit(tArgs.get(i), map); } } } return null; }
public TypeReference getRawType() { if (isGenericType()) { final TypeReference underlyingType = getUnderlyingType(); if (underlyingType != this) { return underlyingType.getRawType(); } return new RawType(this); } throw ContractUtils.unsupported(); }
protected StringBuilder appendErasedSignature(final StringBuilder sb) { if (isGenericType() && !isGenericDefinition()) { return getUnderlyingType().appendErasedSignature(sb); } return appendErasedClassSignature(sb); }
protected StringBuilder appendErasedSignature(final StringBuilder sb) { if (isGenericType() && !isGenericDefinition()) { return getUnderlyingType().appendErasedSignature(sb); } return appendErasedClassSignature(sb); }
public TypeReference getRawType() { if (isGenericType()) { final TypeReference underlyingType = getUnderlyingType(); if (underlyingType != this) { return underlyingType.getRawType(); } return new RawType(this); } throw ContractUtils.unsupported(); }
protected StringBuilder appendErasedSignature(final StringBuilder sb) { if (isGenericType() && !isGenericDefinition()) { return getUnderlyingType().appendErasedSignature(sb); } return appendErasedClassSignature(sb); }
public TypeReference getRawType() { if (isGenericType()) { final TypeReference underlyingType = getUnderlyingType(); if (underlyingType != this) { return underlyingType.getRawType(); } return new RawType(this); } throw ContractUtils.unsupported(); }
public static TypeReference asSubType(final TypeReference type, final TypeReference baseType) { VerifyArgument.notNull(type, "type"); VerifyArgument.notNull(baseType, "baseType"); TypeReference effectiveType = type; if (type instanceof RawType) { effectiveType = type.getUnderlyingType(); } else if (isRawType(type)) { final TypeDefinition resolvedType = type.resolve(); effectiveType = resolvedType != null ? resolvedType : type; } return AS_SUBTYPE_VISITOR.visit(baseType, effectiveType); }
public static TypeReference asSubType(final TypeReference type, final TypeReference baseType) { VerifyArgument.notNull(type, "type"); VerifyArgument.notNull(baseType, "baseType"); TypeReference effectiveType = type; if (type instanceof RawType) { effectiveType = type.getUnderlyingType(); } else if (isRawType(type)) { final TypeDefinition resolvedType = type.resolve(); effectiveType = resolvedType != null ? resolvedType : type; } return AS_SUBTYPE_VISITOR.visit(baseType, effectiveType); }
public static TypeReference asSubType(final TypeReference type, final TypeReference baseType) { VerifyArgument.notNull(type, "type"); VerifyArgument.notNull(baseType, "baseType"); TypeReference effectiveType = type; if (type instanceof RawType) { effectiveType = type.getUnderlyingType(); } else if (isRawType(type)) { final TypeDefinition resolvedType = type.resolve(); effectiveType = resolvedType != null ? resolvedType : type; } return AS_SUBTYPE_VISITOR.visit(baseType, effectiveType); }
private TypeReference toRawType(TypeReference type) { if(type.hasExtendsBound()) return toRawType(type.getExtendsBound()); if(type.hasSuperBound()) return BuiltinTypes.Object; if(type instanceof GenericParameter) return toRawType(type.getUnderlyingType()); if(!type.isGenericType()) return type; try { return type.getRawType(); } catch (UnsupportedOperationException e) { return BuiltinTypes.Object; } }
private String qualifyReference(final AstNode node, final TypeReference type) { if (type == null || type.isGenericParameter() || type.isWildcardType()) { return null; } final TypeDefinition resolvedType = type.resolve(); final TypeReference t = resolvedType != null ? resolvedType : (type.isGenericType() ? type.getUnderlyingType() : type); final Object resolvedObject = resolveName(node, t.getSimpleName(), modeForType(node)); if (resolvedObject instanceof TypeReference && MetadataHelper.isSameType(t, (TypeReference) resolvedObject)) { return t.getSimpleName(); } if (t.isNested()) { final String outerReference = qualifyReference(node, t.getDeclaringType()); if (outerReference != null) { return outerReference + "." + t.getSimpleName(); } } if (resolvedObject != null) { return t.getFullName(); } return null; }