1 package org.simantics.interop.update.model;
3 import org.simantics.db.Resource;
4 import org.simantics.db.Statement;
5 import org.simantics.db.WriteGraph;
6 import org.simantics.db.exception.DatabaseException;
7 import org.simantics.interop.test.GraphChanges;
8 import org.simantics.utils.datastructures.Pair;
10 public class PropertyChange {
11 protected GraphChanges changes;
12 protected Pair<Statement, Statement> pair;
13 protected boolean applied = false;
14 protected boolean selected = false;
17 public PropertyChange(GraphChanges changes, Statement first, Statement second) {
18 this.pair = new Pair<Statement, Statement>(first, second);
19 this.changes = changes;
22 public PropertyChange(GraphChanges changes, Pair<Statement, Statement> change) {
24 this.changes = changes;
27 public Statement getFirst() {
31 public Statement getSecond() {
35 public GraphChanges getChanges() {
40 public int hashCode() {
41 return pair.hashCode();
45 public boolean equals(Object obj) {
48 if (obj.getClass() != this.getClass())
50 PropertyChange c = (PropertyChange)obj;
51 return pair.equals(c.pair);
54 public void apply(WriteGraph graph) throws DatabaseException {
57 if (pair.second == null) {
58 graph.deny(pair.first);
61 Resource s = changes.getComparable().getLeft(pair.second.getSubject());
62 //Resource s = pair.first.getSubject();
63 Resource pred = pair.second.getPredicate();
64 if (graph.hasValue(pair.second.getObject())) {
65 Object value = graph.getValue(pair.second.getObject());
66 graph.claimLiteral(s, pred, value);
74 public boolean select(boolean select) {
77 this.selected = select;
82 public boolean selected() {
86 public boolean applied() {