synchronized ITypeBinding getTypeBinding(RecoveredTypeBinding recoveredTypeBinding, int dimensions) { if (recoveredTypeBinding== null) { return null; } return new RecoveredTypeBinding(this, recoveredTypeBinding, dimensions); }
RecoveredTypeBinding(BindingResolver resolver, RecoveredTypeBinding typeBinding, int dimensions) { this.innerTypeBinding = typeBinding; this.dimensions = typeBinding.getDimensions() + dimensions; this.resolver = resolver; }
private String getInternalName() { if (this.innerTypeBinding != null) { return this.innerTypeBinding.getInternalName(); } ReferenceBinding referenceBinding = getReferenceBinding(); if (referenceBinding != null) { return new String(referenceBinding.compoundName[referenceBinding.compoundName.length - 1]); } return getTypeNameFrom(getType()); }
public IJavaElement getJavaElement() { IPackageBinding packageBinding = getPackage(); if (packageBinding != null) { final IJavaElement javaElement = packageBinding.getJavaElement(); if (javaElement != null && javaElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT) { // best effort: we don't know if the recovered binding is a binary or source binding, so go with a simple source type return ((PackageFragment) javaElement).getCompilationUnit(getInternalName() + SuffixConstants.SUFFIX_STRING_java).getType(this.getName()); } } return null; }
public ITypeBinding getElementType() { if (this.binding != null) { if (this.binding.isArrayType()) { ArrayBinding arrayBinding = (ArrayBinding) this.binding; return new RecoveredTypeBinding(this.resolver, arrayBinding.leafComponentType); } else { return new RecoveredTypeBinding(this.resolver, this.binding); } } if (this.innerTypeBinding != null) { return this.innerTypeBinding.getElementType(); } if (this.currentType!= null && this.currentType.isArrayType()) { return this.resolver.getTypeBinding(((ArrayType) this.currentType).getElementType()); } if (this.variableDeclaration != null && this.variableDeclaration.getExtraDimensions() != 0) { return this.resolver.getTypeBinding(getType()); } return null; }
public String getQualifiedName() { ReferenceBinding referenceBinding = getReferenceBinding(); if (referenceBinding != null) { StringBuffer buffer = new StringBuffer(); char[] brackets = new char[this.dimensions * 2]; for (int i = this.dimensions * 2 - 1; i >= 0; i -= 2) { brackets[i] = ']'; brackets[i - 1] = '['; } buffer.append(CharOperation.toString(referenceBinding.compoundName)); buffer.append(brackets); return String.valueOf(buffer); } else { return getName(); } }
if (this.innerTypeBinding != null) { buffer.append("innerTypeBinding") //$NON-NLS-1$ .append(this.innerTypeBinding.getKey()); } else if (this.currentType != null) { buffer.append("currentType") //$NON-NLS-1$ .append(this.variableDeclaration.getExtraDimensions()); buffer.append(getDimensions()); if (this.typeArguments != null) { buffer.append('<');
RecoveredTypeBinding(BindingResolver resolver, VariableDeclaration variableDeclaration) { this.variableDeclaration = variableDeclaration; this.resolver = resolver; this.currentType = getType(); this.dimensions = variableDeclaration.getExtraDimensions(); if (this.currentType.isArrayType()) { this.dimensions += ((ArrayType) this.currentType).getDimensions(); } }
@Override public boolean isEqualTo(IBinding other) { if (!other.isRecovered() || other.getKind() != IBinding.TYPE) return false; return getKey().equals(other.getKey()); }
public String getName() { char[] brackets = new char[this.dimensions * 2]; for (int i = this.dimensions * 2 - 1; i >= 0; i -= 2) { brackets[i] = ']'; brackets[i - 1] = '['; } StringBuffer buffer = new StringBuffer(getInternalName()); buffer.append(brackets); return String.valueOf(buffer); }
public ITypeBinding getSuperclass() { if (getQualifiedName().equals("java.lang.Object")) { //$NON-NLS-1$ return null; } return this.resolver.resolveWellKnownType("java.lang.Object"); //$NON-NLS-1$ }
private ReferenceBinding getReferenceBinding() { if (this.binding != null) { if (this.binding.isArrayType()) { ArrayBinding arrayBinding = (ArrayBinding) this.binding; if (arrayBinding.leafComponentType instanceof ReferenceBinding) { return (ReferenceBinding) arrayBinding.leafComponentType; } } else if (this.binding instanceof ReferenceBinding) { return (ReferenceBinding) this.binding; } } else if (this.innerTypeBinding != null) { return this.innerTypeBinding.getReferenceBinding(); } return null; }
public IJavaElement getJavaElement() { IPackageBinding packageBinding = getPackage(); if (packageBinding != null) { final IJavaElement javaElement = packageBinding.getJavaElement(); if (javaElement != null && javaElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT) { // best effort: we don't know if the recovered binding is a binary or source binding, so go with a simple source type return ((PackageFragment) javaElement).getCompilationUnit(getInternalName() + SuffixConstants.SUFFIX_STRING_java).getType(this.getName()); } } return null; }
public ITypeBinding getElementType() { if (this.binding != null) { if (this.binding.isArrayType()) { ArrayBinding arrayBinding = (ArrayBinding) this.binding; return new RecoveredTypeBinding(this.resolver, arrayBinding.leafComponentType); } else { return new RecoveredTypeBinding(this.resolver, this.binding); } } if (this.innerTypeBinding != null) { return this.innerTypeBinding.getElementType(); } if (this.currentType!= null && this.currentType.isArrayType()) { return this.resolver.getTypeBinding(((ArrayType) this.currentType).getElementType()); } if (this.variableDeclaration != null && this.variableDeclaration.getExtraDimensions() != 0) { return this.resolver.getTypeBinding(getType()); } return null; }
public String getQualifiedName() { ReferenceBinding referenceBinding = getReferenceBinding(); if (referenceBinding != null) { StringBuffer buffer = new StringBuffer(); char[] brackets = new char[this.dimensions * 2]; for (int i = this.dimensions * 2 - 1; i >= 0; i -= 2) { brackets[i] = ']'; brackets[i - 1] = '['; } buffer.append(CharOperation.toString(referenceBinding.compoundName)); buffer.append(brackets); return String.valueOf(buffer); } else { return getName(); } }
if (this.innerTypeBinding != null) { buffer.append("innerTypeBinding") //$NON-NLS-1$ .append(this.innerTypeBinding.getKey()); } else if (this.currentType != null) { buffer.append("currentType") //$NON-NLS-1$ .append(this.variableDeclaration.getExtraDimensions()); buffer.append(getDimensions()); if (this.typeArguments != null) { buffer.append('<');
RecoveredTypeBinding(BindingResolver resolver, VariableDeclaration variableDeclaration) { this.variableDeclaration = variableDeclaration; this.resolver = resolver; this.currentType = getType(); this.dimensions = variableDeclaration.getExtraDimensions(); if (this.currentType.isArrayType()) { this.dimensions += ((ArrayType) this.currentType).getDimensions(); } }
public boolean isEqualTo(IBinding other) { if (!other.isRecovered() || other.getKind() != IBinding.TYPE) return false; return getKey().equals(other.getKey()); }
@Override public String getName() { char[] brackets = new char[this.dimensions * 2]; for (int i = this.dimensions * 2 - 1; i >= 0; i -= 2) { brackets[i] = ']'; brackets[i - 1] = '['; } StringBuffer buffer = new StringBuffer(getInternalName()); buffer.append(brackets); return String.valueOf(buffer); }
@Override public ITypeBinding getSuperclass() { if (getQualifiedName().equals("java.lang.Object")) { //$NON-NLS-1$ return null; } return this.resolver.resolveWellKnownType("java.lang.Object"); //$NON-NLS-1$ }