
org.jnario.spec.scoping.SpecImportedNamespaceScopeProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.jnario.standalone Show documentation
Show all versions of org.jnario.standalone Show documentation
The required libraries to execute Jnario specifications without Eclipse.
The newest version!
package org.jnario.spec.scoping;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.xtext.common.types.access.IJvmTypeProvider;
import org.eclipse.xtext.common.types.xtext.AbstractTypeScope;
import org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider;
import org.eclipse.xtext.scoping.IScope;
import org.eclipse.xtext.scoping.impl.SelectableBasedScope;
import org.jnario.scoping.JnarioImportedNamespaceScopeProvider;
import org.jnario.spec.spec.ExampleGroup;
import org.jnario.spec.spec.SpecPackage;
import com.google.inject.Inject;
public class SpecImportedNamespaceScopeProvider extends
JnarioImportedNamespaceScopeProvider {
@Inject
private AbstractTypeScopeProvider typeScopeProvider;
@Override
public IScope getScope(final EObject context, final EReference reference) {
if (reference == SpecPackage.Literals.EXAMPLE_GROUP__TARGET_TYPE) {
Resource resource = context.eResource();
IJvmTypeProvider typeProvider = typeScopeProvider.getTypeProvider(resource.getResourceSet());
AbstractTypeScope typeScope = typeScopeProvider.createTypeScope(typeProvider, null);
return SelectableBasedScope.createScope(typeScope, getAllDescriptions(resource), reference.getEReferenceType(), false);
}else{
return super.getScope(context, reference);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy