]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.issues.common/src/org/simantics/issues/common/ComposedValidation.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.issues.common / src / org / simantics / issues / common / ComposedValidation.java
1 package org.simantics.issues.common;\r
2 \r
3 import java.util.Map;\r
4 import java.util.Set;\r
5 \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
15 \r
16 public class ComposedValidation extends UniqueRead<Map<Resource, Set<Issue>>> {\r
17 \r
18         private final IProgressMonitor monitor;\r
19         private final BatchIssueSource source;\r
20         private final BatchIssueValidationContext context;\r
21 \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
26         }\r
27 \r
28         @Override\r
29         public Map<Resource, Set<Issue>> perform(ReadGraph graph) throws DatabaseException {\r
30 \r
31                 SubMonitor progress = SubMonitor.convert(monitor);\r
32                 progress.setWorkRemaining(context.contexts.size());\r
33                 \r
34                 QueryControl cc = graph.getService(QueryControl.class);\r
35                 cc.flush(graph);\r
36                 \r
37                 return source.run(progress, graph, context);\r
38 \r
39         }\r
40 \r
41 }