import org.simantics.db.Statement;
import org.simantics.db.exception.DatabaseException;
import org.simantics.interop.test.GraphChanges;
-import org.simantics.interop.update.model.ModelUpdate.ChangeFilter;
+import org.simantics.interop.test.GraphChanges.Modification;
import org.simantics.utils.datastructures.Pair;
public class UpdateList {
- private HashSet<PropertyChange> changes;
+ private List<PropertyChange> changes;
public UpdateList() {
- changes = new HashSet<>();
+ changes = new ArrayList<>();
}
public UpdateList(Collection<PropertyChange> changes) {
- this.changes = new HashSet<>(changes);
+ this.changes = new ArrayList<>(changes);
}
- public UpdateList(GraphChanges graphChanges, Collection<Pair<Statement, Statement>> coll) {
- this.changes = new HashSet<>();
- for (Pair<Statement, Statement> p : coll) {
- changes.add(create(graphChanges, p));
+ public UpdateList(GraphChanges graphChanges, Collection<Modification> coll) {
+ this.changes = new ArrayList<>();
+ for (Modification p : coll) {
+ addChange(create(graphChanges, p.getLeftSub(),p.getRightSub(),new Pair<Statement, Statement>(p.getLeftStm(), p.getRightStm())));
}
}
- protected PropertyChange create(GraphChanges changes, Pair<Statement, Statement> change) {
- return new PropertyChange(changes, change);
+ protected PropertyChange create(GraphChanges changes, Resource left, Resource right, Pair<Statement, Statement> change) {
+ return new PropertyChange(changes, left,right, change);
}
- public Collection<PropertyChange> getChanges() {
+ public List<PropertyChange> getChanges() {
return changes;
}
public void addChange(PropertyChange change) {
- changes.add(change);
+ if (!changes.contains(change))
+ changes.add(change);
}
public void removeChange(PropertyChange change) {