private boolean needsDeepMethod(ITypeBinding type) { String elementTypeName= type.getErasure().getElementType().getName(); return type.getDimensions() > 1 || TYPE_NAME_CLONEABLE.equals(elementTypeName) || TYPE_NAME_SERIALIZABLE.equals(elementTypeName) || TYPE_NAME_OBJECT.equals(elementTypeName); }
private String[] getVariableNameProposals(ITypeBinding arrayTypeBinding, IJavaProject project) { String[] variableNames= getUsedVariableNames(); String baseName= FOR_LOOP_ELEMENT_IDENTIFIER; String name= fArrayBinding.getName(); if (name.length() > 2 && name.charAt(name.length() - 1) == 's') { baseName= name.substring(0, name.length() - 1); } String[] elementSuggestions= StubUtility.getLocalNameSuggestions(project, baseName, 0, variableNames); String type= arrayTypeBinding.getElementType().getName(); String[] typeSuggestions= StubUtility.getLocalNameSuggestions(project, type, arrayTypeBinding.getDimensions() - 1, variableNames); String[] result= new String[elementSuggestions.length + typeSuggestions.length]; System.arraycopy(elementSuggestions, 0, result, 0, elementSuggestions.length); System.arraycopy(typeSuggestions, 0, result, elementSuggestions.length, typeSuggestions.length); return result; }
private ArrayType createArrayType(ITypeBinding binding) { int index= binding.getDimensions() - 1; TType elementType= create(binding.getElementType()); Map/*<TType, ArrayType>*/ arrayTypes= getArrayTypesMap(index); ArrayType result= (ArrayType)arrayTypes.get(elementType); if (result != null) return result; result= new ArrayType(this); arrayTypes.put(elementType, result); result.initialize(binding, elementType); return result; }
private ArrayType createArrayType(ITypeBinding binding) { int index= binding.getDimensions() - 1; TType elementType= create(binding.getElementType()); Map<TType, ArrayType> arrayTypes= getArrayTypesMap(index); ArrayType result= arrayTypes.get(elementType); if (result != null) return result; result= new ArrayType(this); arrayTypes.put(elementType, result); result.initialize(binding, elementType); return result; }
private ArrayType createArrayType(ITypeBinding binding) { int index= binding.getDimensions() - 1; TType elementType= create(binding.getElementType()); Map<TType, ArrayType> arrayTypes= getArrayTypesMap(index); ArrayType result= arrayTypes.get(elementType); if (result != null) return result; result= new ArrayType(this); arrayTypes.put(elementType, result); result.initialize(binding, elementType); return result; }
private String[] getVariableNameProposals(ITypeBinding arrayTypeBinding, IJavaProject project) { String[] variableNames= getUsedVariableNames(); String[] elementSuggestions= StubUtility.getLocalNameSuggestions(project, FOR_LOOP_ELEMENT_IDENTIFIER, 0, variableNames); String type= arrayTypeBinding.getElementType().getName(); String[] typeSuggestions= StubUtility.getLocalNameSuggestions(project, type, arrayTypeBinding.getDimensions() - 1, variableNames); String[] result= new String[elementSuggestions.length + typeSuggestions.length]; System.arraycopy(elementSuggestions, 0, result, 0, elementSuggestions.length); System.arraycopy(typeSuggestions, 0, result, elementSuggestions.length, typeSuggestions.length); return result; }
private CSTypeReferenceExpression mappedArrayTypeReference(ITypeBinding type) { return new CSArrayTypeReference(mappedTypeReference(type.getElementType()), type.getDimensions()); }
/** * Creates a type variable. * * @param type the type binding * @param range the compilation unit range * @return the created type variable */ public final ConstraintVariable2 createTypeVariable(ITypeBinding type, final CompilationUnitRange range) { if (type.isArray()) type= type.getElementType(); if (isConstrainedType(type)) return (ConstraintVariable2) fConstraintVariables.addExisting(new TypeVariable2(createTType(type), range)); return null; }
/** * Creates an immutable type variable. * * @param type the type binding * @return the created plain type variable, or <code>null</code> */ public final ConstraintVariable2 createImmutableTypeVariable(ITypeBinding type) { if (type.isArray()) type= type.getElementType(); if (isConstrainedType(type)) return fConstraintVariables.addExisting(new ImmutableTypeVariable2(createTType(type))); return null; }
/** * Creates an immutable type variable. * * @param type the type binding * @return the created plain type variable */ public final ConstraintVariable2 createImmutableTypeVariable(ITypeBinding type) { if (type.isArray()) type= type.getElementType(); if (isConstrainedType(type)) return (ConstraintVariable2) fConstraintVariables.addExisting(new ImmutableTypeVariable2(createTType(type))); return null; }
/** * Creates an immutable type variable. * * @param type the type binding * @return the created plain type variable, or <code>null</code> */ public final ConstraintVariable2 createImmutableTypeVariable(ITypeBinding type) { if (type.isArray()) type= type.getElementType(); if (isConstrainedType(type)) return fConstraintVariables.addExisting(new ImmutableTypeVariable2(createTType(type))); return null; }
/** * Creates a declaring type variable. * <p> * A declaring type variable stands for a type where something has been declared. * </p> * * @param type the type binding * @return the created declaring type variable */ public final ConstraintVariable2 createDeclaringTypeVariable(ITypeBinding type) { if (type.isArray()) type= type.getElementType(); type= type.getTypeDeclaration(); return fConstraintVariables.addExisting(new ImmutableTypeVariable2(createTType(type))); }
/** * Creates a type variable. * * @param type the type binding * @param range the compilation unit range * @return the created type variable, or <code>null</code> */ public final ConstraintVariable2 createTypeVariable(ITypeBinding type, final CompilationUnitRange range) { if (type.isArray()) type= type.getElementType(); if (isConstrainedType(type)) return fConstraintVariables.addExisting(new TypeVariable2(createTType(type), range)); return null; }
private static String getQualifiedName(ITypeBinding typeBinding) { if (typeBinding.isAnonymous()) return getQualifiedName(typeBinding.getSuperclass()); if (! typeBinding.isArray()) return typeBinding.getQualifiedName(); else return typeBinding.getElementType().getQualifiedName(); }
private static String getQualifiedName(ITypeBinding typeBinding) { if (typeBinding.isAnonymous()) return getQualifiedName(typeBinding.getSuperclass()); if (! typeBinding.isArray()) return typeBinding.getQualifiedName(); else return typeBinding.getElementType().getQualifiedName(); }
private static String getQualifiedName(ITypeBinding typeBinding) { if (typeBinding.isAnonymous()) return getQualifiedName(typeBinding.getSuperclass()); if (! typeBinding.isArray()) return typeBinding.getQualifiedName(); else return typeBinding.getElementType().getQualifiedName(); }
public static ITypeBinding replaceWildcardsAndCaptures(ITypeBinding type) { while (type.isWildcardType() || type.isCapture() || (type.isArray() && type.getElementType().isCapture())) { ITypeBinding bound = type.getBound(); type = (bound != null) ? bound : type.getErasure(); } return type; }
public static boolean containsTypeVariables(ITypeBinding type) { if (type.isTypeVariable()) return true; if (type.isArray()) return containsTypeVariables(type.getElementType()); if (type.isCapture()) return containsTypeVariables(type.getWildcard()); if (type.isParameterizedType()) return containsTypeVariables(type.getTypeArguments()); if (type.isWildcardType() && type.getBound() != null) return containsTypeVariables(type.getBound()); return false; }
static boolean containsTypeVariables(ITypeBinding type) { if (type.isTypeVariable()) return true; if (type.isArray()) return containsTypeVariables(type.getElementType()); if (type.isCapture()) return containsTypeVariables(type.getWildcard()); if (type.isParameterizedType()) return containsTypeVariables(type.getTypeArguments()); if (type.isWildcardType() && type.getBound() != null) return containsTypeVariables(type.getBound()); return false; }
public boolean visit(ArrayInitializer node) { if (isImplicitelyTypedArrayInitializer(node)) { CSArrayCreationExpression ace = new CSArrayCreationExpression(mappedTypeReference(node.resolveTypeBinding() .getComponentType())); ITypeBinding saved = pushExpectedType(node.resolveTypeBinding().getElementType()); ace.initializer(mapArrayInitializer(node)); popExpectedType(saved); pushExpression(ace); return false; } pushExpression(mapArrayInitializer(node)); return false; }