]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.issues.common/src/org/simantics/issues/common/DependencyTrackerBatchIssueSource.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.issues.common / src / org / simantics / issues / common / DependencyTrackerBatchIssueSource.java
index dde1109fde79e303f380c672b3013a7caa49ee89..a87867f89c2c8860bf0e4bca90f0ede7d7fadfb1 100644 (file)
-package org.simantics.issues.common;\r
-\r
-import java.util.Collections;\r
-import java.util.HashMap;\r
-import java.util.HashSet;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Set;\r
-\r
-import org.eclipse.core.runtime.IProgressMonitor;\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.QueryMemoryWatcher;\r
-import org.simantics.db.common.primitiverequest.IsInheritedFrom;\r
-import org.simantics.db.common.procedure.adapter.TransientCacheAsyncListener;\r
-import org.simantics.db.common.utils.Functions;\r
-import org.simantics.db.common.utils.NameUtils;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.util.ModelTransferableGraphSourceRequest.DomainOnlyProcessor;\r
-import org.simantics.db.service.QueryControl;\r
-import org.simantics.issues.ontology.IssueResource;\r
-import org.simantics.layer0.Layer0;\r
-\r
-public class DependencyTrackerBatchIssueSource implements BatchIssueSource {\r
-\r
-       final Resource source;\r
-       \r
-       public DependencyTrackerBatchIssueSource(Resource source) {\r
-               this.source = source;\r
-       }\r
-       \r
-       @Override\r
-       public Map<Resource, Set<Issue>> run(IProgressMonitor monitor, ReadGraph graph, BatchIssueValidationContext context) throws DatabaseException {\r
-               \r
-        SubMonitor progress = SubMonitor.convert(monitor);\r
-\r
-               Layer0 L0 = Layer0.getInstance(graph);\r
-               IssueResource IR = IssueResource.getInstance(graph);\r
-               \r
-               Resource constraint = graph.getSingleObject(source, IR.Sources_DependencyTracker_HasConstraint);\r
-               Resource type = graph.getSingleObject(constraint, L0.HasConstraint_Inverse);\r
-               Resource function = graph.getSingleObject(constraint, L0.Constraint_Validator);\r
-               \r
-               String sourceName = NameUtils.getSafeName(graph, source);\r
-\r
-        QueryControl qc = graph.getService(QueryControl.class);\r
-        qc.flush(graph);\r
-\r
-        progress.subTask(sourceName);\r
-        progress.worked(1);\r
-        \r
-               HashMap<Resource, Set<Issue>> result = new HashMap<Resource, Set<Issue>>();\r
-               \r
-               // Allow this process to make 50k queries\r
-               QueryMemoryWatcher memory = new QueryMemoryWatcher(graph, 50000, 0.5, 300);\r
-\r
-               int number = 0;\r
-               \r
-               DomainOnlyProcessor domain = context.domain;\r
-\r
-               for(int i=0;i<domain.internals.size();i++) {\r
-\r
-                       Resource r = domain.internals.get(i);\r
-                       Resource singleType = domain.internalTypes.get(i);\r
-\r
-                       if (number % 1000 == 0) {\r
-                               if(progress.isCanceled()) return Collections.emptyMap();\r
-                               memory.maintain();\r
-                               progress.subTask(sourceName + " " + (100*number)/domain.internals.size() + "% done.");\r
-                       }\r
-                       ++number;\r
-\r
-\r
-                       if(singleType != null) {\r
-                               if(!graph.syncRequest(new IsInheritedFrom(singleType, type), TransientCacheAsyncListener.<Boolean>instance())) continue;\r
-                       } else {\r
-                               if(!graph.isInstanceOf(r, type)) continue;\r
-                       }\r
-\r
-                       @SuppressWarnings("unchecked")\r
-                       List<Issue> is = (List<Issue>)Functions.exec(graph, function, graph, r);\r
-                       if(is.isEmpty())\r
-                               result.put(r, Collections.<Issue>emptySet());\r
-                       else\r
-                               result.put(r, new HashSet<Issue>(is));\r
-\r
-               }\r
-\r
-               return result;\r
-\r
-       }\r
-\r
-       @Override\r
-       public Resource getResource() {\r
-               return source;\r
-       }\r
-\r
-}\r
+package org.simantics.issues.common;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+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.QueryMemoryWatcher;
+import org.simantics.db.common.primitiverequest.IsInheritedFrom;
+import org.simantics.db.common.procedure.adapter.TransientCacheAsyncListener;
+import org.simantics.db.common.utils.Functions;
+import org.simantics.db.common.utils.NameUtils;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.util.ModelTransferableGraphSourceRequest.DomainOnlyProcessor;
+import org.simantics.db.service.QueryControl;
+import org.simantics.issues.ontology.IssueResource;
+import org.simantics.layer0.Layer0;
+
+public class DependencyTrackerBatchIssueSource implements BatchIssueSource {
+
+       final Resource source;
+       
+       public DependencyTrackerBatchIssueSource(Resource source) {
+               this.source = source;
+       }
+       
+       @Override
+       public Map<Resource, Set<Issue>> run(IProgressMonitor monitor, ReadGraph graph, BatchIssueValidationContext context) throws DatabaseException {
+               
+        SubMonitor progress = SubMonitor.convert(monitor);
+
+               Layer0 L0 = Layer0.getInstance(graph);
+               IssueResource IR = IssueResource.getInstance(graph);
+               
+               Resource constraint = graph.getSingleObject(source, IR.Sources_DependencyTracker_HasConstraint);
+               Resource type = graph.getSingleObject(constraint, L0.HasConstraint_Inverse);
+               Resource function = graph.getSingleObject(constraint, L0.Constraint_Validator);
+               
+               String sourceName = NameUtils.getSafeName(graph, source);
+
+        QueryControl qc = graph.getService(QueryControl.class);
+        qc.flush(graph);
+
+        progress.subTask(sourceName);
+        progress.worked(1);
+        
+               HashMap<Resource, Set<Issue>> result = new HashMap<Resource, Set<Issue>>();
+               
+               // Allow this process to make 50k queries
+               QueryMemoryWatcher memory = new QueryMemoryWatcher(graph, 50000, 0.5, 300);
+
+               int number = 0;
+               
+               DomainOnlyProcessor domain = context.domain;
+
+               for(int i=0;i<domain.internals.size();i++) {
+
+                       Resource r = domain.internals.get(i);
+                       Resource singleType = domain.internalTypes.get(i);
+
+                       if (number % 1000 == 0) {
+                               if(progress.isCanceled()) return Collections.emptyMap();
+                               memory.maintain();
+                               progress.subTask(sourceName + " " + (100*number)/domain.internals.size() + "% done.");
+                       }
+                       ++number;
+
+
+                       if(singleType != null) {
+                               if(!graph.syncRequest(new IsInheritedFrom(singleType, type), TransientCacheAsyncListener.<Boolean>instance())) continue;
+                       } else {
+                               if(!graph.isInstanceOf(r, type)) continue;
+                       }
+
+                       @SuppressWarnings("unchecked")
+                       List<Issue> is = (List<Issue>)Functions.exec(graph, function, graph, r);
+                       if(is.isEmpty())
+                               result.put(r, Collections.<Issue>emptySet());
+                       else
+                               result.put(r, new HashSet<Issue>(is));
+
+               }
+
+               return result;
+
+       }
+
+       @Override
+       public Resource getResource() {
+               return source;
+       }
+
+}