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