@Override public MutableTypeVariable setVariable(String variable) { return ensureDelegateType().setVariable(variable); }
@Override protected MutableTypeVariable getTypeVariable(MutableTypeVariable variable) { if (variable.getVariable() != null && variable.getVariable().length() > 0) { return variable.clone().setVariable(ConverterTypeElement.DOMAIN_TYPE_ARGUMENT_PREFIX + "_" + variable.getVariable()); } return variable; } }
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 MutableDeclaredType renameTypeParameter(RenameActionType actionType, String parameter, String oldName, boolean recursive) { if (getTypeVariables() == null || getTypeVariables().size() == 0) { return this; } dirty(); for (MutableTypeVariable typeParameter: this.getTypeVariables()) { String variable = typeParameter.getVariable(); if (variable != null && !variable.equals(MutableWildcardType.WILDCARD_NAME)) { if (oldName == null || oldName.equals(variable)) { variable = actionType.apply(variable, parameter); } typeParameter.setVariable(variable); } else if (recursive) { renameBounds(typeParameter.getUpperBounds(), actionType, parameter, oldName, recursive); renameBounds(typeParameter.getLowerBounds(), actionType, parameter, oldName, recursive); } } return this; }
public static MutableTypeMirror stripTypeParametersVariables(MutableTypeMirror parameterType) { switch (parameterType.getKind()) { case CLASS: case INTERFACE: return ((MutableDeclaredType)parameterType).clone().stripTypeParametersVariables(); case TYPEVAR: if (((MutableTypeVariable)parameterType).getVariable() != null && ((MutableTypeVariable)parameterType).getVariable() != MutableWildcardType.WILDCARD_NAME) { return ((MutableTypeVariable)parameterType).clone().setVariable(null); } default: return parameterType; } }