public abstract class SchemaObjectValidator<T extends SchemaObject> extends DBObjectValidator<T>
DBObjectValidator.DBObjectValidator.NamespaceType, DBObjectValidator.PropertyDependency, DBObjectValidator.PropertyValidator| Constructor and Description |
|---|
SchemaObjectValidator(DBObjectProvider pro) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
canChangeSchema()
By default an object's schema can be changed (only applies to
SchemaObjects).
|
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.
|
protected boolean |
checkSchemaDelete(DBObject removed,
T obj)
Checks whether the removed object is the Schema for the given
SchemaObject.
|
protected boolean |
checkSchemaRename(Difference objDiff,
java.lang.String propName,
T obj)
Checks the given object objDiff and propertyName and if they
represent a schema rename for the Schema of the given object then
we update obj with the new schema and return true.
|
void |
validateSchema(T original,
T updated) |
canHaveEmptyName, canRename, checkInterrupt, enforceChildNameUniqueInSchema, findExistingObject, getDependencies, getNamespaceType, initializeWithDefaultName, isChildOfPendingObject, isPendingObject, listAlwaysValidProperties, logException, shouldValidateProperty, validate, validateComment, validateMissingPath, validateName, validateName, validateName, validateNameInUse, validateNameInUse, validateNonNullableProperty, validateObject, validateObject, validateObjectProperty, validateObjectProperty, validateOwnedObjects, validateOwnedObjects, validateType, validateUniqueNamescascadeDelete, cascadeUpdate, getCascadeProperties, getLogger, getProvider, removeReferencepublic SchemaObjectValidator(DBObjectProvider pro)
public void validateSchema(T original, T updated) throws ValidationException
ValidationExceptionprotected boolean canChangeSchema()
public CascadeAction cascadeDelete(DBObject removed, T obj) throws DBException
CascadeWorkercascadeDelete in class CascadeWorker<T extends SchemaObject>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 boolean checkSchemaDelete(DBObject removed, T obj)
removed - the object being removedobj - the SchemaObject that we're cascading toprotected CascadeAction cascadePropertyChange(Difference objDiff, java.lang.String propName, java.lang.Object oldValue, java.lang.Object newValue, T obj) throws DBException
CascadeWorkercascadePropertyChange in class CascadeWorker<T extends SchemaObject>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.protected boolean checkSchemaRename(Difference objDiff, java.lang.String propName, T obj)
objDiff - the DBObject difference we're cascaddingpropName - the property that has been changedobj - the object to cascade the change to