public static TypeReference substituteGenericArguments( final TypeReference inputType, final TypeReference substitutionsProvider) { if (inputType == null || substitutionsProvider == null) { return inputType; } return substituteGenericArguments(inputType, adapt(inputType, substitutionsProvider)); }
public static TypeReference substituteGenericArguments( final TypeReference inputType, final TypeReference substitutionsProvider) { if (inputType == null || substitutionsProvider == null) { return inputType; } return substituteGenericArguments(inputType, adapt(inputType, substitutionsProvider)); }
public static TypeReference substituteGenericArguments( final TypeReference inputType, final TypeReference substitutionsProvider) { if (inputType == null || substitutionsProvider == null) { return inputType; } return substituteGenericArguments(inputType, adapt(inputType, substitutionsProvider)); }
public static TypeReference getBaseType(final TypeReference type) { if (type == null) { return null; } final TypeDefinition resolvedType = type.resolve(); if (resolvedType == null) { return null; } final TypeReference baseType = resolvedType.getBaseType(); if (baseType == null) { return null; } return substituteGenericArguments(baseType, type); }
public static TypeReference getBaseType(final TypeReference type) { if (type == null) { return null; } final TypeDefinition resolvedType = type.resolve(); if (resolvedType == null) { return null; } final TypeReference baseType = resolvedType.getBaseType(); if (baseType == null) { return null; } return substituteGenericArguments(baseType, type); }
public static TypeReference getBaseType(final TypeReference type) { if (type == null) { return null; } final TypeDefinition resolvedType = type.resolve(); if (resolvedType == null) { return null; } final TypeReference baseType = resolvedType.getBaseType(); if (baseType == null) { return null; } return substituteGenericArguments(baseType, type); }
@Override public List<TypeReference> visitClassType(final TypeReference t, final Void ignored) { final TypeDefinition r = t.resolve(); if (r == null) { return Collections.emptyList(); } final List<TypeReference> interfaces = r.getExplicitInterfaces(); if (r.isGenericDefinition()) { if (t.isGenericDefinition()) { return interfaces; } if (isRawType(t)) { return eraseRecursive(interfaces); } final List<? extends TypeReference> formal = getTypeArguments(r); final List<? extends TypeReference> actual = getTypeArguments(t); final ArrayList<TypeReference> result = new ArrayList<>(); final Map<TypeReference, TypeReference> mappings = new HashMap<>(); for (int i = 0, n = formal.size(); i < n; i++) { mappings.put(formal.get(i), actual.get(i)); } for (int i = 0, n = interfaces.size(); i < n; i++) { result.add(substituteGenericArguments(interfaces.get(i), mappings)); } return result; } return interfaces; }
@Override public List<TypeReference> visitClassType(final TypeReference t, final Void ignored) { final TypeDefinition r = t.resolve(); if (r == null) { return Collections.emptyList(); } final List<TypeReference> interfaces = r.getExplicitInterfaces(); if (r.isGenericDefinition()) { if (t.isGenericDefinition()) { return interfaces; } if (isRawType(t)) { return eraseRecursive(interfaces); } final List<? extends TypeReference> formal = getTypeArguments(r); final List<? extends TypeReference> actual = getTypeArguments(t); final ArrayList<TypeReference> result = new ArrayList<>(); final Map<TypeReference, TypeReference> mappings = new HashMap<>(); for (int i = 0, n = formal.size(); i < n; i++) { mappings.put(formal.get(i), actual.get(i)); } for (int i = 0, n = interfaces.size(); i < n; i++) { result.add(substituteGenericArguments(interfaces.get(i), mappings)); } return result; } return interfaces; }
@Override public List<TypeReference> visitClassType(final TypeReference t, final Void ignored) { final TypeDefinition r = t.resolve(); if (r == null) { return Collections.emptyList(); } final List<TypeReference> interfaces = r.getExplicitInterfaces(); if (r.isGenericDefinition()) { if (t.isGenericDefinition()) { return interfaces; } if (isRawType(t)) { return eraseRecursive(interfaces); } final List<? extends TypeReference> formal = getTypeArguments(r); final List<? extends TypeReference> actual = getTypeArguments(t); final ArrayList<TypeReference> result = new ArrayList<>(); final Map<TypeReference, TypeReference> mappings = new HashMap<>(); for (int i = 0, n = formal.size(); i < n; i++) { mappings.put(formal.get(i), actual.get(i)); } for (int i = 0, n = interfaces.size(); i < n; i++) { result.add(substituteGenericArguments(interfaces.get(i), mappings)); } return result; } return interfaces; }
return substituteGenericArguments(t, rewrite);
return substituteGenericArguments(t, rewrite);
return substituteGenericArguments(inputType, map);
return substituteGenericArguments(t, rewrite);
final TypeReference result = substituteGenericArguments(s, mappings); return substituteGenericArguments(result, unboundMappings);
return substituteGenericArguments(resolved1, type2); return substituteGenericArguments(type1, type2); return substituteGenericArguments(resolved2, type1); return substituteGenericArguments(type2, type1);
return substituteGenericArguments(resolved1, type2); return substituteGenericArguments(type1, type2); return substituteGenericArguments(resolved2, type1); return substituteGenericArguments(type2, type1);
return substituteGenericArguments(resolved1, type2); return substituteGenericArguments(type1, type2); return substituteGenericArguments(resolved2, type1); return substituteGenericArguments(type2, type1);
@Override public TypeReference visitClassType(final TypeReference t, final Void ignored) { final TypeDefinition resolved = t.resolve(); if (resolved == null) { return BuiltinTypes.Object; } TypeReference superType; if (resolved.isInterface()) { superType = resolved.getBaseType(); if (superType == null) { superType = firstOrDefault(resolved.getExplicitInterfaces()); } } else { superType = resolved.getBaseType(); } if (superType == null) { return null; } if (resolved.isGenericDefinition()) { if (!t.isGenericType()) { return eraseRecursive(superType); } if (t.isGenericDefinition()) { return superType; } return substituteGenericArguments(superType, classBound(t)); } return superType; }
@Override public TypeReference visitClassType(final TypeReference t, final Void ignored) { final TypeDefinition resolved = t.resolve(); if (resolved == null) { return BuiltinTypes.Object; } TypeReference superType; if (resolved.isInterface()) { superType = resolved.getBaseType(); if (superType == null) { superType = firstOrDefault(resolved.getExplicitInterfaces()); } } else { superType = resolved.getBaseType(); } if (superType == null) { return null; } if (resolved.isGenericDefinition()) { if (!t.isGenericType()) { return eraseRecursive(superType); } if (t.isGenericDefinition()) { return superType; } return substituteGenericArguments(superType, classBound(t)); } return superType; }
@Override public TypeReference visitClassType(final TypeReference t, final Void ignored) { final TypeDefinition resolved = t.resolve(); if (resolved == null) { return BuiltinTypes.Object; } TypeReference superType; if (resolved.isInterface()) { superType = resolved.getBaseType(); if (superType == null) { superType = firstOrDefault(resolved.getExplicitInterfaces()); } } else { superType = resolved.getBaseType(); } if (superType == null) { return null; } if (resolved.isGenericDefinition()) { if (!t.isGenericType()) { return eraseRecursive(superType); } if (t.isGenericDefinition()) { return superType; } return substituteGenericArguments(superType, classBound(t)); } return superType; }