private boolean isParameterizedTypeWithOneArgument(ITypeBinding typeBinding) { return typeBinding != null && typeBinding.isParameterizedType() && typeBinding.getTypeArguments().length == 1; }
private boolean isParameterizedTypeWithNbArguments(final ITypeBinding typeBinding, int nbArgs) { return typeBinding != null && typeBinding.isParameterizedType() && typeBinding.getTypeArguments().length == nbArgs; }
/** Special handling because of captures. */ private boolean areSameParameterizedTypeBindings(final ITypeBinding type1, final ITypeBinding type2) { return type1.getErasure().equals(type2.getErasure()) && areSameTypeBindings(type1.getTypeArguments(), type2.getTypeArguments()); }
public static String javaDefaultTargetEntityFromContainer(ITypeBinding typeBinding) { ITypeBinding[] typeArguments = typeBinding.getTypeArguments(); if (typeArguments.length != 1) { return null; } ITypeBinding elementTypeBinding = typeArguments[0]; String elementTypeName = buildReferenceEntityTypeName(elementTypeBinding); return typeNamedIsContainer(elementTypeName) ? null : elementTypeName; }
private boolean resolveTypeCompatibleIfPossible(ITypeBinding paramType) { return isParameterizedTypeWithOneArgument(paramType) && resolveTypeCompatible(paramType.getTypeArguments()[0]); }
private boolean isGenericRuntimeParameterIdiom(IMethodBinding method, ITypeBinding parameterType) { if (!parameterType.isParameterizedType()) { return false; } if (!"java.lang.Class".equals(qualifiedName(parameterType))) { return false; } // detecting if the T in Class<T> comes from the method itself final ITypeBinding classTypeArgument = parameterType.getTypeArguments()[0]; return classTypeArgument.getDeclaringMethod() == method; }
private boolean resolveDestinationParamTypeCompatibleWithKeyValue(final MethodInvocation mi) { if (isExprReceived(mi)) { final ITypeBinding newElementType = getDestinationType(mi); return isParameterizedTypeWithNbArguments(newElementType, 2) && resolveKeyTypeCompatible(newElementType.getTypeArguments()[0]) && resolveValueTypeCompatible(newElementType.getTypeArguments()[1]); } return true; }
private void updateTypeVariables(ASTRewrite rewriter, CallContext context) { ITypeBinding type= context.getReceiverType(); if (type == null) return; rewriteReferences(rewriter, type.getTypeArguments(), fAnalyzer.getTypeParameterReferences()); }
private void updateTypeVariables(ASTRewrite rewriter, CallContext context) { ITypeBinding type= context.getReceiverType(); if (type == null) return; rewriteReferences(rewriter, type.getTypeArguments(), fAnalyzer.getTypeParameterReferences()); }
private void updateTypeVariables(ASTRewrite rewriter, CallContext context) { ITypeBinding type= context.getReceiverType(); if (type == null) return; rewriteReferences(rewriter, type.getTypeArguments(), fAnalyzer.getTypeParameterReferences()); }
public static String typeMappingKey(final ITypeBinding type) { ITypeBinding[] typeArguments = type.getTypeArguments(); if (typeArguments.length == 0) typeArguments = type.getTypeParameters(); if (typeArguments.length > 0) { return qualifiedName(type) + "<" + repeat(',', typeArguments.length - 1) + ">"; } return qualifiedName(type); }
private boolean resolveDestinationParamTypeCompatibleWithKey(final MethodInvocation mi) { if (isExprReceived(mi)) { final ITypeBinding newElementType = getDestinationType(mi); return isParameterizedTypeWithNbArguments(newElementType, 1) && resolveKeyTypeCompatible(newElementType.getTypeArguments()[0]); } return true; }
private boolean resolveDestinationParamTypeCompatibleWithValue(final MethodInvocation mi) { if (isExprReceived(mi)) { final ITypeBinding newElementType = getDestinationType(mi); return isParameterizedTypeWithNbArguments(newElementType, 1) && resolveValueTypeCompatible(newElementType.getTypeArguments()[0]); } return true; }
private boolean areTypeCompatible(ITypeBinding colTypeBinding, ITypeBinding arrayTypeBinding) { if (arrayTypeBinding != null && colTypeBinding != null) { ITypeBinding jucTypeBinding = findImplementedType(colTypeBinding, "java.util.Collection"); if (jucTypeBinding.isRawType()) { return true; } ITypeBinding componentType = arrayTypeBinding.getComponentType(); ITypeBinding colTypeArgument = jucTypeBinding.getTypeArguments()[0]; return componentType.isSubTypeCompatible(colTypeArgument); } return false; }
public boolean visit(ParameterizedType node) { ITypeBinding binding = node.resolveBinding(); if (binding == null) return super.visit(node); coupleTo(binding); for (ITypeBinding types : binding.getTypeArguments()) { coupleTo(types); } return super.visit(node); }
protected void initialize(ITypeBinding binding, IType javaElementType) { Assert.isTrue(binding.isParameterizedType()); super.initialize(binding, javaElementType); TypeEnvironment environment= getEnvironment(); fTypeDeclaration= (GenericType)environment.create(binding.getTypeDeclaration()); ITypeBinding[] typeArguments= binding.getTypeArguments(); fTypeArguments= new TType[typeArguments.length]; for (int i= 0; i < typeArguments.length; i++) { fTypeArguments[i]= environment.create(typeArguments[i]); } }
@Override protected void initialize(ITypeBinding binding, IType javaElementType) { Assert.isTrue(binding.isParameterizedType()); super.initialize(binding, javaElementType); TypeEnvironment environment= getEnvironment(); fTypeDeclaration= (GenericType)environment.create(binding.getTypeDeclaration()); ITypeBinding[] typeArguments= binding.getTypeArguments(); fTypeArguments= new TType[typeArguments.length]; for (int i= 0; i < typeArguments.length; i++) { fTypeArguments[i]= environment.create(typeArguments[i]); } }
@Override protected void initialize(ITypeBinding binding, IType javaElementType) { Assert.isTrue(binding.isParameterizedType()); super.initialize(binding, javaElementType); TypeEnvironment environment= getEnvironment(); fTypeDeclaration= (GenericType)environment.create(binding.getTypeDeclaration()); ITypeBinding[] typeArguments= binding.getTypeArguments(); fTypeArguments= new TType[typeArguments.length]; for (int i= 0; i < typeArguments.length; i++) { fTypeArguments[i]= environment.create(typeArguments[i]); } }
private CSTypeReferenceExpression mappedMacroTypeReference(ITypeBinding typeUsage, final TypeDeclaration typeDeclaration) { final CSMacro macro = new CSMacro(JavadocUtility.singleTextFragmentFrom(javadocTagFor(typeDeclaration, SharpenAnnotations.SHARPEN_MACRO))); final ITypeBinding[] typeArguments = typeUsage.getTypeArguments(); if (typeArguments.length > 0) { final ITypeBinding[] typeParameters = typeUsage.getTypeDeclaration().getTypeParameters(); for (int i = 0; i < typeParameters.length; i++) { macro.addVariable(typeParameters[i].getName(), mappedTypeReference(typeArguments[i])); } } return new CSMacroTypeReference(macro); }
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; }