use of org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider.Filter in project dsl-devkit by dsldevkit.
the class CheckProposalProvider method completeContextVariable_Type.
/**
* {@inheritDoc}
*/
@Override
public // CHECKSTYLE:OFF
void completeContextVariable_Type(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
// CHECKSTYLE:ON
completeJavaTypes(context, TypesPackage.Literals.JVM_PARAMETERIZED_TYPE_REFERENCE__TYPE, true, qualifiedNameValueConverter, new Filter() {
// @Format-Off
private final Set<String> resourceEClassNames = model.eResource().getResourceSet().getResources().stream().map(resource -> resource.getContents()).flatMap(List::stream).filter(obj -> obj instanceof EPackage).map(obj -> ((EPackage) obj).getEClassifiers()).flatMap(List::stream).map(eClass -> eClass.getEPackage().getName() + '.' + eClass.getName()).collect(Collectors.toSet());
// @Format-On
@Override
public int getSearchFor() {
return IJavaSearchConstants.INTERFACE;
}
@Override
public boolean accept(final int modifiers, final char[] packageName, final char[] simpleTypeName, final char[][] enclosingTypeNames, final String path) {
String fullPackageName = new String(packageName);
String simpleClassName = new String(simpleTypeName);
String ePackageName = fullPackageName.substring(fullPackageName.lastIndexOf('.') + 1);
return REGISTERED_ECLASS_NAMES.contains(fullPackageName + '.' + simpleClassName) || resourceEClassNames.contains(ePackageName + '.' + simpleClassName);
}
}, acceptor);
shortCircuit();
}
Aggregations