protected TypeReference getDelegateScopeProvider() { TypeReference _xifexpression = null; boolean _inheritsXbase = this._xbaseUsageDetector.inheritsXbase(this.getLanguage().getGrammar()); if (_inheritsXbase) { _xifexpression = TypeReference.typeRef("org.eclipse.xtext.xbase.scoping.XImportSectionNamespaceScopeProvider"); } else { _xifexpression = TypeReference.typeRef(ImportedNamespaceAwareLocalScopeProvider.class); } return _xifexpression; }
public void configureIScopeProviderDelegate(Binder binder) { binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(ImportedNamespaceAwareLocalScopeProvider.class); }
@Override protected Class<? extends IScopeProvider> getLocalScopeProvider() { return ImportedNamespaceAwareLocalScopeProvider.class; }
@Override public Class<? extends IScopeProvider> bindIScopeProvider() { return ImportedNamespaceAwareLocalScopeProvider.class; }
@Override public void setUp() throws Exception { super.setUp(); with(ReferenceGrammarTestLanguageStandaloneSetup.class); IQualifiedNameConverter nameConverter = new IQualifiedNameConverter.DefaultImpl(); IQualifiedNameProvider nameProvider = new DefaultDeclarativeQualifiedNameProvider(); ImportUriGlobalScopeProvider globalScopeProvider = new ImportUriGlobalScopeProvider(); globalScopeProvider.setImportResolver(new ImportUriResolver()); globalScopeProvider.setCache(IResourceScopeCache.NullImpl.INSTANCE); final ResourceDescriptionsProvider provider = new ResourceDescriptionsProvider(); provider.setResourceDescriptions(new Provider<IResourceDescriptions>() { @Override public IResourceDescriptions get() { return new IResourceDescriptions.NullImpl(); } }); globalScopeProvider.setResourceDescriptionsProvider(provider); globalScopeProvider.setLoadOnDemandDescriptions(new Provider<LoadOnDemandResourceDescriptions>() { @Override public LoadOnDemandResourceDescriptions get() { return PartialLinkingTest.this.get(LoadOnDemandResourceDescriptions.class); } }); CaseInsensitivityHelper caseInsensitivityHelper = new CaseInsensitivityHelper(); globalScopeProvider.setCaseInsensitivityHelper(caseInsensitivityHelper); scopeProvider = new ImportedNamespaceAwareLocalScopeProvider(globalScopeProvider, nameProvider, nameConverter, caseInsensitivityHelper); modelAsText = "spielplatz 1 {\n" + " kind( Bommel1 1)\n" + " kind( Bommel2 2)\n" + " kind( Bommel3 3)\n" + " erwachsener( Bob 4)\n" + " erwachsener( Joe 5)\n" + " familie( Familienname Bob Joe Bommel2 )\n" + "}"; resource = getResourceFromString(modelAsText); assertTrue(resource.getErrors().toString(), resource.getErrors().isEmpty()); model = resource.getParseResult().getRootASTElement(); final Iterator<EObject> iter = model.eAllContents(); while (iter.hasNext() && context == null) { final EObject candidate = iter.next(); final String className = candidate.eClass().getName(); if (className.endsWith("Familie")) context = candidate; } reference = (EReference) context.eClass().getEStructuralFeature("kinder"); }