*/
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;
}
- 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);