Class AbstractDbObject
- java.lang.Object
-
- org.alfresco.util.schemacomp.model.AbstractDbObject
-
- All Implemented Interfaces:
DbObject
- Direct Known Subclasses:
Column,ForeignKey,Index,PrimaryKey,Schema,Sequence,Table
public abstract class AbstractDbObject extends java.lang.Object implements DbObject
Useful base class for many, if not all theDbObjectimplementations.- Author:
- Matt Ward
-
-
Field Summary
Fields Modifier and Type Field Description protected ComparisonUtilscomparisonUtils
-
Constructor Summary
Constructors Constructor Description AbstractDbObject(DbObject parent, java.lang.String name)Instantiate, giving the object a parent and a name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddiff(DbObject right, DiffContext ctx)Provides an implementation ofDbObject.diff(DbObject, DiffContext).protected voiddoDiff(DbObject right, DiffContext ctx)Override this method to provide subclass specific diffing logic.booleanequals(java.lang.Object obj)java.lang.StringgetName()All items can be asked for their name, but it may be null.DbObjectgetParent()Get the parent object for which this object is a child.java.lang.StringgetTypeName()Type name, e.g.java.util.List<DbValidator>getValidators()Retrieve the list of validators associated with this database object.inthashCode()booleanhasObjectLevelValidator()Is there at least one validator that assumes object-level validation that removes the requirement for reporting of differences for this object?booleanhasValidators()Does the database object have any validators associated with it?booleansameAs(DbObject other)Are the twoDbObjects logically the same? For example two Index objects may have different names, but are the same index as they both index the same columns for the same table.voidsetComparisonUtils(ComparisonUtils comparisonUtils)If a ComparisonUtils other than the default is required, then this setter can be used.voidsetName(java.lang.String name)voidsetParent(DbObject parent)Sets the parent object.voidsetValidators(java.util.List<DbValidator> validators)Set/override the validators associated with this database object.java.lang.StringtoString()
-
-
-
Field Detail
-
comparisonUtils
protected ComparisonUtils comparisonUtils
-
-
Constructor Detail
-
AbstractDbObject
public AbstractDbObject(DbObject parent, java.lang.String name)
Instantiate, giving the object a parent and a name.- Parameters:
parent- DbObjectname- String
-
-
Method Detail
-
getName
public java.lang.String getName()
Description copied from interface:DbObjectAll items can be asked for their name, but it may be null.
-
setName
public void setName(java.lang.String name)
- Parameters:
name- the name to set
-
sameAs
public boolean sameAs(DbObject other)
Description copied from interface:DbObjectAre the twoDbObjects logically the same? For example two Index objects may have different names, but are the same index as they both index the same columns for the same table.If two objects a and b have the same logical identity, it does not mean that
a.equals(b) == true. The two objects may well have differences and will be flagged as such by the schema comparison tool. Whena.sameAs(b) == trueit makes it easier to show the differences as related, i.e. a and b are different rather than, a is only in the 'left' tree and b is only in the 'right' tree.
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
diff
public void diff(DbObject right, DiffContext ctx)
Provides an implementation ofDbObject.diff(DbObject, DiffContext). The template methoddoDiff(DbObject, DiffContext)provides the subclass specific diffing logic, whilst this method handles the workflow required in most cases: set the path's prefix that will be used to explain where differences occur; compare the name fields of the two objects; delegate to the subclass specific diffing (if any); remove the last path addition ready for the next object to perform its diff correctly.
-
getParent
public DbObject getParent()
Description copied from interface:DbObjectGet the parent object for which this object is a child. If this is the root object then null should be returned.
-
setParent
public void setParent(DbObject parent)
Description copied from interface:DbObjectSets the parent object.- Specified by:
setParentin interfaceDbObject- Parameters:
parent- DbObject- See Also:
DbObject.getParent()
-
doDiff
protected void doDiff(DbObject right, DiffContext ctx)
Override this method to provide subclass specific diffing logic.- Parameters:
right- DbObjectctx- DiffContext
-
setComparisonUtils
public void setComparisonUtils(ComparisonUtils comparisonUtils)
If a ComparisonUtils other than the default is required, then this setter can be used. Useful for testing, where a mock can be injected.- Parameters:
comparisonUtils- the comparisonUtils to set
-
getValidators
public java.util.List<DbValidator> getValidators()
Description copied from interface:DbObjectRetrieve the list of validators associated with this database object.- Specified by:
getValidatorsin interfaceDbObject- Returns:
- DbValidator List
- See Also:
DbValidator
-
setValidators
public void setValidators(java.util.List<DbValidator> validators)
Description copied from interface:DbObjectSet/override the validators associated with this database object.- Specified by:
setValidatorsin interfaceDbObject- Parameters:
validators- the validators to set
-
hasValidators
public boolean hasValidators()
Description copied from interface:DbObjectDoes the database object have any validators associated with it?- Specified by:
hasValidatorsin interfaceDbObject- Returns:
- true if there are one or more validators.
-
hasObjectLevelValidator
public boolean hasObjectLevelValidator()
Description copied from interface:DbObjectIs there at least one validator that assumes object-level validation that removes the requirement for reporting of differences for this object?- Specified by:
hasObjectLevelValidatorin interfaceDbObject- Returns:
- boolean
-
getTypeName
public java.lang.String getTypeName()
Description copied from interface:DbObjectType name, e.g. "column", "foreign key"- Specified by:
getTypeNamein interfaceDbObject- Returns:
- String
-
-