public void attachData(Resource resource) { if (findDataAdapter(resource) != null) { return; } List<Issue> issues = collectIssues(resource); Data adapter = new Data(); for (Issue issue : issues) { URI uriToProblem = issue.getUriToProblem(); if (uriToProblem != null && uriToProblem.trimFragment().equals(resource.getURI())) { EObject erroneousElement = resource.getEObject(uriToProblem.fragment()); adapter.addIssue(erroneousElement, issue); for(EObject jvmElement: associations.getJvmElements(erroneousElement)) { adapter.addIssue(jvmElement, issue); } } } resource.eAdapters().add(adapter); }
protected List<Issue> collectIssues(Resource resource) { List<Issue> issues = newArrayList(resourceValidator.validate(resource, CheckMode.NORMAL_AND_FAST, CancelIndicator.NullImpl)); synthesizeIssuesForFollowUpErrors(resource, issues); return issues; }
public void detachData(Resource resource) { resource.eAdapters().remove(findDataAdapter(resource)); }
@Override public void afterGenerate(final Resource input, final IFileSystemAccess2 fsa, final IGeneratorContext context) { this.issueProviderFactory.detachData(input); }
@Override public void beforeGenerate(final Resource input, final IFileSystemAccess2 fsa, final IGeneratorContext context) { this.issueProviderFactory.attachData(input); }
@Override public IElementIssueProvider get(Resource resource) { Data data = findDataAdapter(resource); return new ElementIssueProvider(data); }