X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.interop.update%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fupdate%2Fmodel%2FUpdateList.java;h=447ddff2579bf19421044cb82e0bb548c2bee842;hb=caef8a0d1a68053c61efa046c84f936177c4e580;hp=255d9ea93491787a0be294e681476ed570eadac9;hpb=e2f57d7e61d6c52b6341f793f6988c123daa1647;p=simantics%2Finterop.git diff --git a/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateList.java b/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateList.java index 255d9ea..447ddff 100644 --- a/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateList.java +++ b/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateList.java @@ -1,35 +1,88 @@ package org.simantics.interop.update.model; +import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; +import java.util.List; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; import org.simantics.db.Statement; +import org.simantics.db.exception.DatabaseException; import org.simantics.utils.datastructures.Pair; public class UpdateList { private HashSet> changes; + private HashSet> selected; public UpdateList() { changes = new HashSet<>(); + selected = new HashSet<>(); } public UpdateList(Collection> changes) { this.changes = new HashSet<>(changes); + this.selected = new HashSet<>(); } public Collection> getChanges() { return changes; } + public HashSet> getSelected() { + return selected; + } + public void addChange(Pair change) { changes.add(change); } public void removeChange(Pair change) { changes.remove(change); + selected.remove(change); + } + + public void addSelected(Pair change) { + selected.add(change); + } + + public void removeSelected(Pair change) { + selected.remove(change); } public void clear() { changes.clear(); + selected.clear(); + } + + public void clearSelected() { + selected.clear(); + } + + public Collection> getChanges(ReadGraph g, Resource r) throws DatabaseException{ + List> list = new ArrayList<>(); + for (Pair pair : changes) { + if (pair.first != null) { + if (pair.first.getSubject().equals(r)) { + list.add(pair); + continue; + } + if (pair.first.getObject().equals(r)) { + list.add(pair); + continue; + } + } + if (pair.second != null) { + if (pair.second.getSubject().equals(r)) { + list.add(pair); + continue; + } + if (pair.second.getObject().equals(r)) { + list.add(pair); + continue; + } + } + } + return list; } }