comparator2.test(getSession());
changes2 = comparator2.getChanges();
changes2 = getSession().syncRequest(createFilterRead(changes2, filters));
- updateTree2 = getUpdateTree(changes2);
- updateList2 = getUpdateList(changes2);
+ Pair<UpdateTree, UpdateList> chg2 = createChangeObjects(changes2);
+ updateTree2 = chg2.first;
+ updateList2 = chg2.second;
// compare the original and the new model
Pair<GraphComparator,String> result3 = getChanges(originalModel,newModel);
comparator.test(getSession());
changes = comparator.getChanges();
changes = getSession().syncRequest(createFilterRead(changes, filters));
- updateTree = getUpdateTree(changes);
- updateList = getUpdateList(changes);
+ Pair<UpdateTree, UpdateList> chg = createChangeObjects(changes);
+ updateTree = chg.first;
+ updateList = chg.second;
if (userFilters.size() != 0) {
refreshUserFilters();
}
}
protected abstract Pair<GraphComparator,String> getChanges(Resource r1, Resource r2) throws DatabaseException;
+
+ protected Pair<UpdateTree, UpdateList> createChangeObjects(GraphChanges changes) throws DatabaseException{
+ UpdateTree updateTree = getUpdateTree(changes);
+ UpdateList updateList = getUpdateList(changes);
+ postProcess(updateTree, updateList);
+ return new Pair<UpdateTree, UpdateList>(updateTree, updateList);
+ }
+
protected abstract UpdateTree getUpdateTree(GraphChanges changes) throws DatabaseException;
protected UpdateList getUpdateList(GraphChanges changes) throws DatabaseException {
return new UpdateList(changes, changes.getModifications());
}
+
+ protected void postProcess(UpdateTree updateTree, UpdateList updateList) throws DatabaseException{
+
+ }
+
public Resource getOldModel() {
return oldModel;
}
}
public UpdateTree getUpdateTree3() throws DatabaseException{
- if (updateTree3 == null && changes3 != null)
- updateTree3 = getUpdateTree(changes3);
+ if (updateTree3 == null && changes3 != null) {
+ Pair<UpdateTree, UpdateList> chg3 = createChangeObjects(changes3);
+ updateTree3 = chg3.first;
+ updateList3 = chg3.second;
+ }
return updateTree3;
}
public UpdateList getUpdateList3() throws DatabaseException {
- if (updateList3 == null && changes3 != null)
- updateList3 = getUpdateList(changes3);
+ if (updateList3 == null && changes3 != null) {
+ Pair<UpdateTree, UpdateList> chg3 = createChangeObjects(changes3);
+ updateTree3 = chg3.first;
+ updateList3 = chg3.second;
+ }
return updateList3;
}
protected boolean applied = false;
protected boolean selected = false;
protected boolean visible = true;
-
+ protected boolean enabled = true;
public PropertyChange(GraphChanges changes, Resource left, Statement first, Resource right, Statement second) {
if (first == null && second == null)
}
+ /**
+ * Sets selected state.
+ * @param select
+ * @return true if selection state was changed
+ */
public boolean select(boolean select) {
+ if (!enabled)
+ return false;
if (applied)
return false;
this.selected = select;
return true;
}
-
+ /**
+ * Is change selected.
+ * @return
+ */
public boolean selected() {
return selected;
}
+ /**
+ * Has change been applied
+ * @return
+ */
public boolean applied() {
return applied;
}
+ /**
+ * Is change visible
+ * @return
+ */
public boolean isVisible() {
return visible;
}
this.visible = visible;
}
+ /**
+ * IS change enabled. Disabled changes do not allow changing selected state.
+ * @return
+ */
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ public void setEnabled(boolean enabled) {
+ this.enabled = enabled;
+ }
+
@Override
public String toString() {
String s = "PropertyChange";
if (pair.first != null)
- s += " (" + (leftSubject) + " , " + pair.first.getPredicate() + " , " + pair.first.getObject() + ")";
+ s += " L(" + (leftSubject) + " , " + pair.first.getPredicate() + " , " + pair.first.getObject() + ")";
if (pair.second != null)
- s += " (" + (rightSubject) + " , " + pair.second.getPredicate() + " , " + pair.second.getObject() + ")";
+ s += " R(" + (rightSubject) + " , " + pair.second.getPredicate() + " , " + pair.second.getObject() + ")";
+ if (selected)
+ s += " selected";
+ if (enabled)
+ s += " enabled";
+ if (visible)
+ s += " visible";
+ if (applied)
+ s += " applied";
return s;
}