--- /dev/null
+package org.simantics.issues.common;\r
+\r
+import java.util.Map;\r
+import java.util.Set;\r
+\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.NullProgressMonitor;\r
+import org.eclipse.core.runtime.SubMonitor;\r
+import org.simantics.db.Issue;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.common.request.UniqueRead;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.service.QueryControl;\r
+\r
+public class ComposedValidation extends UniqueRead<Map<Resource, Set<Issue>>> {\r
+\r
+ private final IProgressMonitor monitor;\r
+ private final BatchIssueSource source;\r
+ private final BatchIssueValidationContext context;\r
+\r
+ public ComposedValidation(IProgressMonitor monitor, BatchIssueSource source, BatchIssueValidationContext context) {\r
+ this.monitor = monitor != null ? monitor : new NullProgressMonitor();\r
+ this.source = source;\r
+ this.context = context;\r
+ }\r
+\r
+ @Override\r
+ public Map<Resource, Set<Issue>> perform(ReadGraph graph) throws DatabaseException {\r
+\r
+ SubMonitor progress = SubMonitor.convert(monitor);\r
+ progress.setWorkRemaining(context.contexts.size());\r
+ \r
+ QueryControl cc = graph.getService(QueryControl.class);\r
+ cc.flush(graph);\r
+ \r
+ return source.run(progress, graph, context);\r
+\r
+ }\r
+\r
+}
\ No newline at end of file