// Validator of DSL A ("Cod")
@Inject
ResourceDescriptionsProvider resourceDescriptionsProvider;
@Inject
IContainer.Manager containerManager;
@Check
private void checkCodModel(CodModel model) {
IResourceDescriptions index = resourceDescriptionsProvider.getResourceDescriptions(model.eResource());
IResourceDescription resourceDescription = index.getResourceDescription(model.eResource().getURI());
for (IContainer visibleContainer : containerManager.getVisibleContainers(resourceDescription, index)) {
for (IEObjectDescription od : visibleContainer.getExportedObjectsByType(SodPackage.Literals.SOD_MODEL)) {
// Proxy only :(
SodModel sodModel = (SodModel) od.getEObjectOrProxy();
// Do validation
}
}
}
@Inject
private XtextResourceSet resourceSet;
// ...
for (IEObjectDescription od : visibleContainer.getExportedObjectsByType(SodPackage.Literals.SOD_MODEL)) {
// Load associated resource
URI uri = od.getEObjectURI().trimFragment();
Resource sodResource = resourceSet.getResource(uri, true);
SodModel sodModel = (SodModel) sodResource.getContents().get(0);
// Do validation
}
// ...