import org.simantics.db.layer0.util.Layer0Utils;
import org.simantics.db.request.Read;
import org.simantics.interop.test.GraphChanges;
+import org.simantics.interop.test.GraphChanges.Modification;
import org.simantics.interop.test.GraphComparator;
import org.simantics.utils.datastructures.BijectionMap;
import org.simantics.utils.datastructures.Pair;
for (PropertyChange rc : r) {
if (comparable.containsRight(rc))
continue;
- if (lc.getFirst().equals(rc.getFirst())) {
+ if (lc.getFirst() != null && lc.getFirst().equals(rc.getFirst())) {
+ comparable.map(lc, rc);
+ break;
+ }
+ if (lc.getSecond() != null && lc.getSecond().equals(rc.getSecond())) {
comparable.map(lc, rc);
break;
}
protected GraphChanges filterChanges(ReadGraph g, GraphChanges changes) throws DatabaseException
{
- List<Pair<Statement,Statement>> modifications = new ArrayList<Pair<Statement,Statement>>();
+ List<Modification> modifications = new ArrayList<Modification>();
- for (Pair<Statement, Statement> mod : changes.getModifications()) {
+ for (Modification mod : changes.getModifications()) {
boolean accept = true;
for (ChangeFilter filter : filters) {
public interface ChangeFilter {
- public boolean accept(ReadGraph g, Pair<Statement, Statement> change) throws DatabaseException;
+ public boolean accept(ReadGraph g, Modification change) throws DatabaseException;
}
}
@Override
- public boolean accept(ReadGraph g, Pair<Statement, Statement> change) throws DatabaseException {
+ public boolean accept(ReadGraph g, Modification change) throws DatabaseException {
//filter floating point values that have less than 1% difference.
- if (!g.hasValue(change.first.getObject()) || !g.hasValue(change.second.getObject()))
+ if (!g.hasValue(change.getLeftStm().getObject()) || !g.hasValue(change.getRightStm().getObject()))
return true;
- Object v1 = g.getValue(change.first.getObject());
- Object v2 = g.getValue(change.second.getObject());
+ Object v1 = g.getValue(change.getLeftStm().getObject());
+ Object v2 = g.getValue(change.getRightStm().getObject());
if (v1 instanceof Double && v2 instanceof Double) {
double d1 = (Double)v1;
if (pair.getFirst() != null) {
boolean found = false;
for (PropertyChange pair2 : updateList2.getChanges()) {
- if (pair.getFirst().equals(pair2.getSecond())) {
+ if (pair.getFirst() != null && pair.getFirst().equals(pair2.getSecond())) {
found = true;
break;
}