]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/requests/CollectionResult.java
Merge "Revert "Default property editing restores assertions""
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / requests / CollectionResult.java
index ff06e43d0946bc10a6bb15a6155232e17631718c..c182c59c80120b7c5eff2814b7a073a07898fc44 100644 (file)
@@ -29,6 +29,9 @@ import org.simantics.scl.runtime.function.Function1;
  */
 public class CollectionResult {
 
+    public static final IFilter DIAGRAM_RESOURCE_FILTER = o -> Nodes.DIAGRAM_RESOURCE_PREDICATE.test((Node) o);
+    public static final IFilter DIAGRAM_RESOURCE_AND_RVI_FILTER = o -> Nodes.DIAGRAM_RESOURCE_AND_RVI_PREDICATE.test((Node) o);
+
     public class DiagramFilter implements IFilter {
 
         private final IFilter proxy;
@@ -44,10 +47,28 @@ public class CollectionResult {
 
     }
 
-    final public Set<Node>           roots       = new ConcurrentSkipListSet<Node>();
-    final private Set<Node>          diagramSet  = new ConcurrentSkipListSet<Node>();
-    final public List<Node>          diagramList = new Vector<Node>();
-    final public Map<Resource, Node> diagrams    = new ConcurrentHashMap<Resource, Node>();
+    public final Set<Node>           roots;
+    private final Set<Node>          diagramSet;
+    public final List<Node>          diagramList;
+    public final Map<Resource, Node> diagrams;
+
+    public CollectionResult() {
+        this.roots       = new ConcurrentSkipListSet<Node>();
+        this.diagramSet  = new ConcurrentSkipListSet<Node>();
+        this.diagramList = new Vector<Node>();
+        this.diagrams    = new ConcurrentHashMap<Resource, Node>();
+    }
+
+    private CollectionResult(Set<Node> roots, Set<Node> diagramSet, List<Node> diagramList, Map<Resource, Node> diagrams) {
+        this.roots = roots;
+        this.diagramSet = diagramSet;
+        this.diagramList = diagramList;
+        this.diagrams = diagrams;
+    }
+
+    public CollectionResult withRoots(Set<Node> roots) {
+        return new CollectionResult(roots, diagramSet, diagramList, diagrams);
+    }
 
     public void addDiagram(Resource r, Node n) {
         diagramList.add(n);