@Override public ModuleBinding module() { if (!isPrototype()) return this.prototype.module; return this.module; }
public FieldBinding getSyntheticField(LocalVariableBinding actualOuterLocalVariable) { if (!isPrototype()) throw new IllegalStateException(); if (this.synthetics == null || this.synthetics[SourceTypeBinding.FIELD_EMUL] == null) return null; return (FieldBinding) this.synthetics[SourceTypeBinding.FIELD_EMUL].get(actualOuterLocalVariable); } /* Answer the synthetic field for <targetEnclosingType>
public SyntheticMethodBinding getSyntheticBridgeMethod(MethodBinding inheritedMethodToBridge) { if (!isPrototype()) throw new IllegalStateException(); if (this.synthetics == null) return null; if (this.synthetics[SourceTypeBinding.METHOD_EMUL] == null) return null; SyntheticMethodBinding[] accessors = (SyntheticMethodBinding[]) this.synthetics[SourceTypeBinding.METHOD_EMUL].get(inheritedMethodToBridge); if (accessors == null) return null; return accessors[1]; }
public int kind() { if (!isPrototype()) return this.prototype.kind(); if (this.typeVariables != Binding.NO_TYPE_VARIABLES) return Binding.GENERIC_TYPE; return Binding.TYPE; }
public final int sourceStart() { if (!isPrototype()) return this.prototype.sourceStart(); return this.scope.referenceContext.sourceStart; } SimpleLookupTable storedAnnotations(boolean forceInitialize) {
public TypeVariableBinding[] typeVariables() { if (!isPrototype()) return this.typeVariables = this.prototype.typeVariables(); return this.typeVariables != null ? this.typeVariables : Binding.NO_TYPE_VARIABLES; } void verifyMethods(MethodVerifier verifier) {
boolean areFieldsInitialized() { if (!isPrototype()) return this.prototype.areFieldsInitialized(); return this.fields != Binding.UNINITIALIZED_FIELDS; } boolean areMethodsInitialized() {
boolean areMethodsInitialized() { if (!isPrototype()) return this.prototype.areMethodsInitialized(); return this.methods != Binding.UNINITIALIZED_METHODS; } @Override
boolean areFieldsInitialized() { if (!isPrototype()) return this.prototype.areFieldsInitialized(); return this.fields != Binding.UNINITIALIZED_FIELDS; } boolean areMethodsInitialized() {
public boolean hasTypeBit(int bit) { if (!isPrototype()) { return this.prototype.hasTypeBit(bit); } // source types initialize type bits during connectSuperclass/interfaces() return (this.typeBits & bit) != 0; }
public boolean hasMemberTypes() { if (!isPrototype()) return this.prototype.hasMemberTypes(); return this.memberTypes.length > 0; }
public void tagAsHavingDefectiveContainerType() { if (!isPrototype()) throw new IllegalStateException(); if (this.containerAnnotationType != null && this.containerAnnotationType.isValidBinding()) this.containerAnnotationType = new ProblemReferenceBinding(this.containerAnnotationType.compoundName, this.containerAnnotationType, ProblemReasons.DefectiveContainerAnnotationType); }
void faultInTypesForFieldsAndMethods() { if (!isPrototype()) throw new IllegalStateException(); checkAnnotationsInType(); internalFaultInTypeForFieldsAndMethods(); }
@Override public ReferenceBinding containerAnnotationType() { if (!isPrototype()) throw new IllegalStateException(); if (this.containerAnnotationType instanceof UnresolvedReferenceBinding) { this.containerAnnotationType = (ReferenceBinding)BinaryTypeBinding.resolveType(this.containerAnnotationType, this.scope.environment(), false); } return this.containerAnnotationType; }
public AnnotationHolder retrieveAnnotationHolder(Binding binding, boolean forceInitialization) { if (!isPrototype()) return this.prototype.retrieveAnnotationHolder(binding, forceInitialization); if (forceInitialization) binding.getAnnotationTagBits(); // ensure annotations are up to date return super.retrieveAnnotationHolder(binding, false); }
public MethodBinding [] setMethods(MethodBinding[] methods) { if (!isPrototype()) return this.prototype.setMethods(methods); if ((this.tagBits & TagBits.HasAnnotatedVariants) != 0) { TypeBinding [] annotatedTypes = this.scope.environment().getAnnotatedTypes(this); for (int i = 0, length = annotatedTypes == null ? 0 : annotatedTypes.length; i < length; i++) { SourceTypeBinding annotatedType = (SourceTypeBinding) annotatedTypes[i]; annotatedType.methods = methods; } } return this.methods = methods; }
public ReferenceBinding setSuperClass(ReferenceBinding superClass) { if (!isPrototype()) return this.prototype.setSuperClass(superClass); if ((this.tagBits & TagBits.HasAnnotatedVariants) != 0) { TypeBinding [] annotatedTypes = this.scope.environment().getAnnotatedTypes(this); for (int i = 0, length = annotatedTypes == null ? 0 : annotatedTypes.length; i < length; i++) { SourceTypeBinding annotatedType = (SourceTypeBinding) annotatedTypes[i]; annotatedType.superclass = superClass; } } return this.superclass = superClass; }
public ReferenceBinding setSuperClass(ReferenceBinding superClass) { if (!isPrototype()) return this.prototype.setSuperClass(superClass); if ((this.tagBits & TagBits.HasAnnotatedVariants) != 0) { TypeBinding [] annotatedTypes = this.scope.environment().getAnnotatedTypes(this); for (int i = 0, length = annotatedTypes == null ? 0 : annotatedTypes.length; i < length; i++) { SourceTypeBinding annotatedType = (SourceTypeBinding) annotatedTypes[i]; annotatedType.superclass = superClass; } } return this.superclass = superClass; }
public TypeVariableBinding [] setTypeVariables(TypeVariableBinding [] typeVariables) { if (!isPrototype()) return this.prototype.setTypeVariables(typeVariables); if ((this.tagBits & TagBits.HasAnnotatedVariants) != 0) { TypeBinding [] annotatedTypes = this.scope.environment().getAnnotatedTypes(this); for (int i = 0, length = annotatedTypes == null ? 0 : annotatedTypes.length; i < length; i++) { SourceTypeBinding annotatedType = (SourceTypeBinding) annotatedTypes[i]; annotatedType.typeVariables = typeVariables; } } return this.typeVariables = typeVariables; }
public ReferenceBinding[] superInterfaces() { if (!isPrototype()) return this.superInterfaces = this.prototype.superInterfaces(); return this.superInterfaces != null ? this.superInterfaces : isAnnotationType() ? this.superInterfaces = new ReferenceBinding [] { this.scope.getJavaLangAnnotationAnnotation() } : null; }