public abstract class CascadeWorker<T extends DBObject>
extends java.lang.Object
| Constructor and Description |
|---|
CascadeWorker(DBObjectProvider pro) |
| Modifier and Type | Method and Description |
|---|---|
protected CascadeAction |
cascadeDelete(DBObjectID removed,
DBObject referer,
T obj)
Cascade deletes the given removed object.
|
CascadeAction |
cascadeDelete(DBObject removed,
T obj)
Cascade deletes the given removed object.
|
protected CascadeAction |
cascadePropertyChange(Difference objDiff,
java.lang.String propName,
java.lang.Object oldValue,
java.lang.Object newValue,
T obj)
Process the given difference from a dependent object that is being
updated.
|
CascadeAction |
cascadeUpdate(Difference objDiff,
T obj)
Cascades the given object difference to an object this CascadeWorker
is responsible for.
|
java.util.Set<java.lang.String> |
getCascadeProperties()
Gets the property names that (if changed on any object) could
require cascade work to be done by this processor.
|
protected java.util.logging.Logger |
getLogger() |
protected DBObjectProvider |
getProvider() |
protected CascadeAction |
removeReference(DBObjectID removed,
DBObject referer,
PropertyInfo info)
This method is called when a reference is found to a deleted object.
|
public CascadeWorker(DBObjectProvider pro)
protected final DBObjectProvider getProvider()
protected final java.util.logging.Logger getLogger()
public CascadeAction cascadeDelete(DBObject removed, T obj) throws DBException
removed - the object that we are cascading the delete ofobj - the object to cascade toDBException - if the delete should be completely aborted. As this
aborts the entire operation it should only be used for terminal errors.
This should not throw a CascadeRequiredException, that is handled by
the framework if an update is required.protected final CascadeAction cascadeDelete(DBObjectID removed, DBObject referer, T obj) throws DBException
removed - the object that we are cascading the delete ofreferer - the object to cascade toobj - the top level object that owns the referer (could be the
referer)DBException - if the delete should be completely aborted. As this
aborts the entire operation it should only be used for terminal errors.
This should not throw a CascadeRequiredException, that is handled by
the framework if an update is required.protected CascadeAction removeReference(DBObjectID removed, DBObject referer, PropertyInfo info) throws DBException
Note: this method will only be called if a property is found on this object (not its children) to the deleted object.
removed - the id of the deleted objectreferer - the object that has a reference to the deleted objectinfo - the PropertyInfo for the property that is the referenceDBException - if the update should be completely aborted. As this
aborts the entire operation it should only be used for terminal errors.
This should not throw a CascadeRequiredException, that is handled by
the framework if an update is required.public CascadeAction cascadeUpdate(Difference objDiff, T obj) throws DBException
objDiff - the changes to cascadeobj - a single object that this worker is responsible for
cascading to.DBException - if the update should be completely aborted. As this
aborts the entire operation it should only be used for terminal errors.
This should not throw a CascadeRequiredException, that is handled by
the framework if an update is required.protected CascadeAction cascadePropertyChange(Difference objDiff, java.lang.String propName, java.lang.Object oldValue, java.lang.Object newValue, T obj) throws DBException
objDiff - the full difference for the updated objectpropName - the name of the changed property we are cascadingoldValue - the old property valuenewValue - the new property valueobj - the object to cascade the change toDBException - if the update should be completely aborted. As this
aborts the entire operation it should only be used for terminal errors.
This should not throw a CascadeRequiredException, that is handled by
the framework if an update is required.public java.util.Set<java.lang.String> getCascadeProperties()