]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.issues.common/src/org/simantics/issues/common/ComposedValidation.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.issues.common / src / org / simantics / issues / common / ComposedValidation.java
1 package org.simantics.issues.common;
2
3 import java.util.Map;
4 import java.util.Set;
5
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;
15
16 public class ComposedValidation extends UniqueRead<Map<Resource, Set<Issue>>> {
17
18         private final IProgressMonitor monitor;
19         private final BatchIssueSource source;
20         private final BatchIssueValidationContext context;
21
22         public ComposedValidation(IProgressMonitor monitor, BatchIssueSource source, BatchIssueValidationContext context) {
23                 this.monitor = monitor != null ? monitor : new NullProgressMonitor();
24                 this.source = source;
25                 this.context = context;
26         }
27
28         @Override
29         public Map<Resource, Set<Issue>> perform(ReadGraph graph) throws DatabaseException {
30
31                 SubMonitor progress = SubMonitor.convert(monitor);
32                 progress.setWorkRemaining(context.contexts.size());
33                 
34                 QueryControl cc = graph.getService(QueryControl.class);
35                 cc.flush(graph);
36                 
37                 return source.run(progress, graph, context);
38
39         }
40
41 }