Class AbstractDbObject

    • 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
      void diff​(DbObject right, DiffContext ctx)
      Provides an implementation of DbObject.diff(DbObject, DiffContext).
      protected void doDiff​(DbObject right, DiffContext ctx)
      Override this method to provide subclass specific diffing logic.
      boolean equals​(java.lang.Object obj)  
      java.lang.String getName()
      All items can be asked for their name, but it may be null.
      DbObject getParent()
      Get the parent object for which this object is a child.
      java.lang.String getTypeName()
      Type name, e.g.
      java.util.List<DbValidator> getValidators()
      Retrieve the list of validators associated with this database object.
      int hashCode()  
      boolean hasObjectLevelValidator()
      Is there at least one validator that assumes object-level validation that removes the requirement for reporting of differences for this object?
      boolean hasValidators()
      Does the database object have any validators associated with it?
      boolean sameAs​(DbObject other)
      Are the two DbObjects 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.
      void setComparisonUtils​(ComparisonUtils comparisonUtils)
      If a ComparisonUtils other than the default is required, then this setter can be used.
      void setName​(java.lang.String name)  
      void setParent​(DbObject parent)
      Sets the parent object.
      void setValidators​(java.util.List<DbValidator> validators)
      Set/override the validators associated with this database object.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.alfresco.util.schemacomp.model.DbObject

        accept
    • Constructor Detail

      • AbstractDbObject

        public AbstractDbObject​(DbObject parent,
                                java.lang.String name)
        Instantiate, giving the object a parent and a name.
        Parameters:
        parent - DbObject
        name - String
    • Method Detail

      • getName

        public java.lang.String getName()
        Description copied from interface: DbObject
        All items can be asked for their name, but it may be null.
        Specified by:
        getName in interface DbObject
        Returns:
        the name
      • setName

        public void setName​(java.lang.String name)
        Parameters:
        name - the name to set
      • sameAs

        public boolean sameAs​(DbObject other)
        Description copied from interface: DbObject
        Are the two DbObjects 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. When a.sameAs(b) == true it 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.

        Specified by:
        sameAs in interface DbObject
        Parameters:
        other - DbObject
        Returns:
        boolean
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • diff

        public void diff​(DbObject right,
                         DiffContext ctx)
        Provides an implementation of DbObject.diff(DbObject, DiffContext). The template method doDiff(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.
        Specified by:
        diff in interface DbObject
        Parameters:
        right - The object to compare against.
        ctx - The DiffContext
      • getParent

        public DbObject getParent()
        Description copied from interface: DbObject
        Get the parent object for which this object is a child. If this is the root object then null should be returned.
        Specified by:
        getParent in interface DbObject
        Returns:
        Parent reference or null
      • doDiff

        protected void doDiff​(DbObject right,
                              DiffContext ctx)
        Override this method to provide subclass specific diffing logic.
        Parameters:
        right - DbObject
        ctx - 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: DbObject
        Retrieve the list of validators associated with this database object.
        Specified by:
        getValidators in interface DbObject
        Returns:
        DbValidator List
        See Also:
        DbValidator
      • setValidators

        public void setValidators​(java.util.List<DbValidator> validators)
        Description copied from interface: DbObject
        Set/override the validators associated with this database object.
        Specified by:
        setValidators in interface DbObject
        Parameters:
        validators - the validators to set
      • hasValidators

        public boolean hasValidators()
        Description copied from interface: DbObject
        Does the database object have any validators associated with it?
        Specified by:
        hasValidators in interface DbObject
        Returns:
        true if there are one or more validators.
      • hasObjectLevelValidator

        public boolean hasObjectLevelValidator()
        Description copied from interface: DbObject
        Is there at least one validator that assumes object-level validation that removes the requirement for reporting of differences for this object?
        Specified by:
        hasObjectLevelValidator in interface DbObject
        Returns:
        boolean
      • getTypeName

        public java.lang.String getTypeName()
        Description copied from interface: DbObject
        Type name, e.g. "column", "foreign key"
        Specified by:
        getTypeName in interface DbObject
        Returns:
        String