1 package org.simantics.interop.update.model;
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.HashSet;
8 import org.simantics.db.ReadGraph;
9 import org.simantics.db.Resource;
10 import org.simantics.db.Statement;
11 import org.simantics.db.exception.DatabaseException;
12 import org.simantics.utils.datastructures.Pair;
14 public class UpdateList {
15 private HashSet<Pair<Statement, Statement>> changes;
16 private HashSet<Pair<Statement, Statement>> selected;
19 changes = new HashSet<>();
20 selected = new HashSet<>();
23 public UpdateList(Collection<Pair<Statement, Statement>> changes) {
24 this.changes = new HashSet<>(changes);
25 this.selected = new HashSet<>();
28 public Collection<Pair<Statement, Statement>> getChanges() {
32 public HashSet<Pair<Statement, Statement>> getSelected() {
36 public void addChange(Pair<Statement, Statement> change) {
40 public void removeChange(Pair<Statement, Statement> change) {
41 changes.remove(change);
42 selected.remove(change);
45 public void addSelected(Pair<Statement, Statement> change) {
49 public void removeSelected(Pair<Statement, Statement> change) {
50 selected.remove(change);
53 public boolean isSelected(Pair<Statement, Statement> change) {
54 return selected.contains(change);
62 public void clearSelected() {
66 public Collection<Pair<Statement, Statement>> getChanges(ReadGraph g, Resource r) throws DatabaseException{
67 List<Pair<Statement, Statement>> list = new ArrayList<>();
68 for (Pair<Statement, Statement> pair : changes) {
69 if (pair.first != null) {
70 if (pair.first.getSubject().equals(r)) {
74 if (pair.first.getObject().equals(r)) {
79 if (pair.second != null) {
80 if (pair.second.getSubject().equals(r)) {
84 if (pair.second.getObject().equals(r)) {