@Override public ITypeBinding[] getImplementations(ITypeBinding service) { return getTypes(this.binding.getImplementations(((TypeBinding) service).binding)); } /**
@Override public ITypeBinding[] getImplementations(ITypeBinding service) { return getTypes(this.binding.getImplementations(((TypeBinding) service).binding)); } /**
@Override public TypeBinding[] getImplementations(TypeBinding binding) { if (this.implementations == null) resolveServices(); return super.getImplementations(binding); } private void resolveServices() {
@Override public TypeBinding[] getImplementations(TypeBinding binding) { resolveTypes(); return super.getImplementations(binding); }
@Override public TypeBinding[] getImplementations(TypeBinding binding) { if (this.implementations == null) resolveServices(); return super.getImplementations(binding); } private void resolveServices() {
@Override public List<? extends TypeElement> getImplementations() { if (this.implementations != null) return this.implementations; TypeBinding[] implementations2 = ModuleElementImpl.this.binding.getImplementations(this.service); if (implementations2.length == 0) { return (this.implementations = Collections.emptyList()); } List<TypeElement> list = new ArrayList<>(implementations2.length); Factory factory = _env.getFactory(); for (TypeBinding type: implementations2) { TypeElement element = (TypeElement) factory.newElement(type); list.add(element); } return Collections.unmodifiableList(list); }
private void matchTypeReferences(SearchPattern pattern, MatchLocator locator) throws CoreException { // Only process TypeReference patterns switch (pattern.kind) { case TYPE_REF_PATTERN: break; case OR_PATTERN: SearchPattern[] patterns = ((OrPattern) pattern).patterns; for (int i = 0, length = patterns.length; i < length; i++) { SearchPattern p = patterns[i]; if (p.kind == TYPE_REF_PATTERN) matchTypeReferences(patterns[i], locator); } // $FALL-THROUGH$ - fall through default to return default: return; } matchTypeReferences(locator, (TypeReferencePattern) pattern, this.module.getUses()); TypeBinding[] services = this.module.getServices(); if (services != null) { matchTypeReferences(locator, (TypeReferencePattern) pattern, services); for (TypeBinding service : services) { matchTypeReferences(locator, (TypeReferencePattern) pattern, this.module.getImplementations(service)); } } } private void matchTypeReferences(MatchLocator locator, TypeReferencePattern typeReferencePattern,
private void matchTypeReferences(SearchPattern pattern, MatchLocator locator) throws CoreException { // Only process TypeReference patterns switch (pattern.kind) { case TYPE_REF_PATTERN: break; case OR_PATTERN: SearchPattern[] patterns = ((OrPattern) pattern).patterns; for (int i = 0, length = patterns.length; i < length; i++) { SearchPattern p = patterns[i]; if (p.kind == TYPE_REF_PATTERN) matchTypeReferences(patterns[i], locator); } // $FALL-THROUGH$ - fall through default to return default: return; } matchTypeReferences(locator, (TypeReferencePattern) pattern, this.module.getUses()); TypeBinding[] services = this.module.getServices(); if (services != null) { matchTypeReferences(locator, (TypeReferencePattern) pattern, services); for (TypeBinding service : services) { matchTypeReferences(locator, (TypeReferencePattern) pattern, this.module.getImplementations(service)); } } } private void matchTypeReferences(MatchLocator locator, TypeReferencePattern typeReferencePattern,
private void matchPackageReferences(SearchPattern pattern, MatchLocator locator) throws CoreException { // Only process PackageReference patterns switch (pattern.kind) { case PKG_REF_PATTERN: break; case OR_PATTERN: SearchPattern[] patterns = ((OrPattern) pattern).patterns; for (int i = 0, length = patterns.length; i < length; i++) { SearchPattern p = patterns[i]; if (p.kind == PKG_REF_PATTERN) matchPackageReferences(patterns[i], locator); } // $FALL-THROUGH$ - fall through default to return default: return; } matchPackReferences(locator, (PackageReferencePattern) pattern, this.module.getExports()); matchPackReferences(locator, (PackageReferencePattern) pattern, this.module.getOpens()); matchPackReferences(locator, (PackageReferencePattern) pattern, this.module.getUses()); TypeBinding[] services = this.module.getServices(); if (services != null) { matchPackReferences(locator, (PackageReferencePattern) pattern, services); for (TypeBinding service : services) { matchPackReferences(locator, (PackageReferencePattern) pattern, this.module.getImplementations(service)); } } } private void matchPackReferences(MatchLocator locator, PackageReferencePattern packReferencePattern,
private void matchPackageReferences(SearchPattern pattern, MatchLocator locator) throws CoreException { // Only process PackageReference patterns switch (pattern.kind) { case PKG_REF_PATTERN: break; case OR_PATTERN: SearchPattern[] patterns = ((OrPattern) pattern).patterns; for (int i = 0, length = patterns.length; i < length; i++) { SearchPattern p = patterns[i]; if (p.kind == PKG_REF_PATTERN) matchPackageReferences(patterns[i], locator); } // $FALL-THROUGH$ - fall through default to return default: return; } matchPackReferences(locator, (PackageReferencePattern) pattern, this.module.getExports()); matchPackReferences(locator, (PackageReferencePattern) pattern, this.module.getOpens()); matchPackReferences(locator, (PackageReferencePattern) pattern, this.module.getUses()); TypeBinding[] services = this.module.getServices(); if (services != null) { matchPackReferences(locator, (PackageReferencePattern) pattern, services); for (TypeBinding service : services) { matchPackReferences(locator, (PackageReferencePattern) pattern, this.module.getImplementations(service)); } } } private void matchPackReferences(MatchLocator locator, PackageReferencePattern packReferencePattern,