private Type<?> visitParameterizedType(final ParameterizedType type, final Frame frame) { final Type<?> rawType = frame.resolveType(type.getRawType()); if (rawType == null) { return null; } final java.lang.reflect.Type[] typeArguments = type.getActualTypeArguments(); final Type<?>[] resolvedTypeArguments = new Type<?>[typeArguments.length]; for (int i = 0, n = typeArguments.length; i < n; i++) { resolvedTypeArguments[i] = frame.resolveType(typeArguments[i]); if (resolvedTypeArguments[i] == null) { return null; } } return rawType.makeGenericType(resolvedTypeArguments); }
private Type<?> visitParameterizedType(final ParameterizedType type, final Frame frame) { final Type<?> rawType = frame.resolveType(type.getRawType()); if (rawType == null) { return null; } final java.lang.reflect.Type[] typeArguments = type.getActualTypeArguments(); final Type<?>[] resolvedTypeArguments = new Type<?>[typeArguments.length]; for (int i = 0, n = typeArguments.length; i < n; i++) { resolvedTypeArguments[i] = frame.resolveType(typeArguments[i]); if (resolvedTypeArguments[i] == null) { return null; } } return rawType.makeGenericType(resolvedTypeArguments); }
private Type<?> visitParameterizedType(final ParameterizedType type, final Frame frame) { final Type<?> rawType = frame.resolveType(type.getRawType()); if (rawType == null) { return null; } final java.lang.reflect.Type[] typeArguments = type.getActualTypeArguments(); final Type<?>[] resolvedTypeArguments = new Type<?>[typeArguments.length]; for (int i = 0, n = typeArguments.length; i < n; i++) { resolvedTypeArguments[i] = frame.resolveType(typeArguments[i]); if (resolvedTypeArguments[i] == null) { return null; } } return rawType.makeGenericType(resolvedTypeArguments); }
@Override public Type<?> visitClassType(final Type<?> type, final TypeBindings bindings) { if (bindings.containsGenericParameter(type)) { return bindings.getBoundType(type); } final TypeBindings oldTypeBindings = type.getTypeBindings(); final TypeBindings newTypeBindings = visitTypeBindings(oldTypeBindings, bindings); if (oldTypeBindings != newTypeBindings) { return type.getGenericTypeDefinition().makeGenericType(newTypeBindings.getBoundTypes()); } return type; }
return resolvedType.makeGenericType(typeArguments);
return resolvedType.makeGenericType(typeArguments);
return resolvedType.makeGenericType(typeArguments);
private Type<?> substitute(final TypeList substitutes) { final TypeList typeArguments = getTypeArguments(); final Type<?>[] substituteArguments = new Type<?>[typeArguments.size()]; for (int i = 0, n = substituteArguments.length; i < n; i++) { final Type t = typeArguments.get(i); if (t instanceof TypeBuilderInstantiation) { substituteArguments[i] = ((TypeBuilderInstantiation)t).substitute(substitutes); } else if (t instanceof GenericParameterBuilder<?>) { substituteArguments[i] = substitutes.get(t.getGenericParameterPosition()); } else { substituteArguments[i] = t; } } return getGenericTypeDefinition().makeGenericType(substituteArguments); }
private Type<?> substitute(final TypeList substitutes) { final TypeList typeArguments = getTypeArguments(); final Type<?>[] substituteArguments = new Type<?>[typeArguments.size()]; for (int i = 0, n = substituteArguments.length; i < n; i++) { final Type t = typeArguments.get(i); if (t instanceof TypeBuilderInstantiation) { substituteArguments[i] = ((TypeBuilderInstantiation)t).substitute(substitutes); } else if (t instanceof GenericParameterBuilder<?>) { substituteArguments[i] = substitutes.get(t.getGenericParameterPosition()); } else { substituteArguments[i] = t; } } return getGenericTypeDefinition().makeGenericType(substituteArguments); }
private Type<?> substitute(final TypeList substitutes) { final TypeList typeArguments = getTypeArguments(); final Type<?>[] substituteArguments = new Type<?>[typeArguments.size()]; for (int i = 0, n = substituteArguments.length; i < n; i++) { final Type t = typeArguments.get(i); if (t instanceof TypeBuilderInstantiation) { substituteArguments[i] = ((TypeBuilderInstantiation)t).substitute(substitutes); } else if (t instanceof GenericParameterBuilder<?>) { substituteArguments[i] = substitutes.get(t.getGenericParameterPosition()); } else { substituteArguments[i] = t; } } return getGenericTypeDefinition().makeGenericType(substituteArguments); }
RuntimeMethodInfo( final Method rawMethod, final Type<?> declaringType, final RuntimeTypeCache<?> reflectedTypeCache, final int modifiers, final Set<BindingFlags> bindingFlags, final ParameterList parameters, final Type<?> returnType, final TypeList thrownTypes, final TypeBindings typeBindings) { _rawMethod = VerifyArgument.notNull(rawMethod, "rawMethod"); _declaringType = VerifyArgument.notNull(declaringType, "declaringType"); _reflectedTypeCache = VerifyArgument.notNull(reflectedTypeCache, "reflectedTypeCache"); _bindingFlags = VerifyArgument.notNull(bindingFlags, "bindingFlags"); _modifiers = modifiers; _parameters = VerifyArgument.notNull(parameters, "parameters"); final Type<?> actualReturnType; if (TypeBinder.GET_CLASS_METHOD.equals(rawMethod)) { actualReturnType = Types.Class.makeGenericType( Type.makeExtendsWildcard(reflectedTypeCache.getRuntimeType()/*.getErasedType()*/) ); } else { actualReturnType = VerifyArgument.notNull(returnType, "returnType"); } _signatureType = new SignatureType(actualReturnType, _parameters.getParameterTypes()); _thrownTypes = VerifyArgument.notNull(thrownTypes, "thrownTypes"); _typeBindings = VerifyArgument.notNull(typeBindings, "typeBindings"); }
RuntimeMethodInfo( final Method rawMethod, final Type<?> declaringType, final RuntimeTypeCache<?> reflectedTypeCache, final int modifiers, final Set<BindingFlags> bindingFlags, final ParameterList parameters, final Type<?> returnType, final TypeList thrownTypes, final TypeBindings typeBindings) { _rawMethod = VerifyArgument.notNull(rawMethod, "rawMethod"); _declaringType = VerifyArgument.notNull(declaringType, "declaringType"); _reflectedTypeCache = VerifyArgument.notNull(reflectedTypeCache, "reflectedTypeCache"); _bindingFlags = VerifyArgument.notNull(bindingFlags, "bindingFlags"); _modifiers = modifiers; _parameters = VerifyArgument.notNull(parameters, "parameters"); final Type<?> actualReturnType; if (TypeBinder.GET_CLASS_METHOD.equals(rawMethod)) { actualReturnType = Types.Class.makeGenericType( Type.makeExtendsWildcard(reflectedTypeCache.getRuntimeType()/*.getErasedType()*/) ); } else { actualReturnType = VerifyArgument.notNull(returnType, "returnType"); } _signatureType = new SignatureType(actualReturnType, _parameters.getParameterTypes()); _thrownTypes = VerifyArgument.notNull(thrownTypes, "thrownTypes"); _typeBindings = VerifyArgument.notNull(typeBindings, "typeBindings"); }
actualReturnType = Types.Class.makeGenericType(
@Override public boolean isEquivalentTo(final Type other) { if (other == this) { return true; } if (other == null) { return false; } if (other == _definition) { return _typeBindings.getBoundTypes().isEquivalentTo(_definition.getGenericTypeParameters()); } if (other instanceof TypeBuilderInstantiation) { final TypeBuilderInstantiation tbi = (TypeBuilderInstantiation) other; return tbi._definition == _definition && _typeBindings.getBoundTypes().isEquivalentTo(tbi._typeBindings.getBoundTypes()); } return _definition.isCreated() && _definition.createType().makeGenericType(_typeBindings.getBoundTypes()).isEquivalentTo(other); } }
return t.getGenericTypeDefinition().makeGenericType(S.toArray());
return t.getGenericTypeDefinition().makeGenericType(S.toArray());
return t.getGenericTypeDefinition().makeGenericType(S.toArray());