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