1 package org.simantics.issues.common;
6 import org.eclipse.core.runtime.IProgressMonitor;
7 import org.eclipse.core.runtime.NullProgressMonitor;
8 import org.eclipse.core.runtime.SubMonitor;
9 import org.simantics.db.Issue;
10 import org.simantics.db.ReadGraph;
11 import org.simantics.db.Resource;
12 import org.simantics.db.common.request.UniqueRead;
13 import org.simantics.db.exception.DatabaseException;
14 import org.simantics.db.service.QueryControl;
16 public class ComposedValidation extends UniqueRead<Map<Resource, Set<Issue>>> {
18 private final IProgressMonitor monitor;
19 private final BatchIssueSource source;
20 private final BatchIssueValidationContext context;
22 public ComposedValidation(IProgressMonitor monitor, BatchIssueSource source, BatchIssueValidationContext context) {
23 this.monitor = monitor != null ? monitor : new NullProgressMonitor();
25 this.context = context;
29 public Map<Resource, Set<Issue>> perform(ReadGraph graph) throws DatabaseException {
31 SubMonitor progress = SubMonitor.convert(monitor);
32 progress.setWorkRemaining(context.contexts.size());
34 QueryControl cc = graph.getService(QueryControl.class);
37 return source.run(progress, graph, context);