@Override public MutableTypeVariable setUpperBounds(Set<? extends MutableTypeMirror> bounds) { return ensureDelegateType().setUpperBounds(bounds); }
public static MutableDeclaredType replaceTypeVariablesByWildcards(MutableDeclaredType type) { if (type.getTypeVariables() == null || type.getTypeVariables().size() == 0) { return type; } for (MutableTypeVariable typeVariable: type.getTypeVariables()) { if (typeVariable.getVariable() != null) { typeVariable.setLowerBounds(null); typeVariable.setUpperBounds(null); typeVariable.setVariable(MutableWildcardType.WILDCARD_NAME); } else { //TODO process bounds } } return type; }
public MutableTypeMirror stripTypeVariableTypes(MutableTypeMirror mutableType) { if (mutableType instanceof MutableDeclaredType) { ((MutableDeclaredType)mutableType).stripTypeParametersTypes(); return mutableType; } if (mutableType instanceof MutableTypeVariable) { ((MutableTypeVariable)mutableType).setLowerBounds(null); ((MutableTypeVariable)mutableType).setUpperBounds(null); return mutableType; } if (mutableType instanceof MutableWildcardType) { ((MutableWildcardType)mutableType).setSuperBound(null); ((MutableWildcardType)mutableType).setExtendsBound(null); } if (mutableType instanceof MutableArrayType) { stripTypeVariableTypes(((MutableArrayType)mutableType).getComponentType()); } return mutableType; }
public static MutableTypeMirror stripTypeParametersTypes(MutableTypeMirror parameterType) { switch (parameterType.getKind()) { case CLASS: case INTERFACE: return ((MutableDeclaredType)parameterType).clone().stripTypeParametersTypes(); case TYPEVAR: if (((MutableTypeVariable)parameterType).getVariable() != null && ((MutableTypeVariable)parameterType).getVariable() != MutableWildcardType.WILDCARD_NAME) { return ((MutableTypeVariable)parameterType).clone().setLowerBounds(null).setUpperBounds(null); } default: return parameterType; } }
mutableTypeVariable.setUpperBounds(toPrintableTypes(owner, mutableTypeVariable.getUpperBounds()));