in rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeSummarizer.java [87:154]
public void createChange(ChangeSummary changeSummary, DataObject changedObject) {
if (changeSummary.isCreated(changedObject)) {
if (this.logger.isDebugEnabled()) {
this.logger.debug("Change is a create");
}
if (!changeSummary.isDeleted(changedObject)) {
ChangeFactory factory = getRegistry().getFactory(changedObject.getType());
String propagatedID = (String) generatedKeys.get(changedObject.getType().getName());
changes.addInsert(factory.createInsertOperation(changedObject, propagatedID));
}
} else if (changeSummary.isDeleted(changedObject)) {
ChangeFactory factory = getRegistry().getFactory(changedObject.getType());
if (this.logger.isDebugEnabled()) {
this.logger.debug("Change is a delete");
}
changes.addDelete(factory.createDeleteOperation(changedObject));
} else {
if (this.logger.isDebugEnabled()) {
this.logger.debug("Change is a modify");
}
List attrList = changeSummary.getOldValues(changedObject);
if (hasAttributeChange(attrList)) {
ChangeFactory factory = getRegistry().getFactory(changedObject.getType());
if (this.logger.isDebugEnabled()) {
this.logger.debug("Attribute Change for " + changedObject.getType().getName());
}
String propagatedID = (String) generatedKeys.get(changedObject.getType().getName());
ChangeOperation op = factory.createUpdateOperation(changedObject, propagatedID);
if (op != null) {
changes.addUpdate(op);
} else {
if(this.logger.isDebugEnabled()) {
this.logger.debug("Update Operation is NULL");
}
}
} else {
List values = changeSummary.getOldValues(changedObject);
Iterator i = values.iterator();
while (i.hasNext()) {
ChangeSummary.Setting setting = (ChangeSummary.Setting) i.next();
if (!setting.getProperty().getType().isDataType()) {
if (this.logger.isDebugEnabled()) {
this.logger.debug("Reference change for " + changedObject.getType().getName());
}
Property ref = setting.getProperty();
if (this.logger.isDebugEnabled()) {
this.logger.debug(ref.getName());
}
if (hasState(ref, changedObject)) {
ChangeFactory factory = getRegistry().getFactory(changedObject.getType());
ChangeOperation op = factory.createUpdateOperation(changedObject);
if (op != null) {
changes.addUpdate(op);
} else {
if(this.logger.isDebugEnabled()) {
this.logger.debug("Update Operation is NULL");
}
}
}
}
}
}
}
}