ALF-7260: schema comparator

* replace path/push/pop mechanism as it doesn't work well at reporting where differences/validation errors occur.
* add getParent() to DbObject - so that a path-style identifier can be deduced for a DbObject when needed
* add DbProperty to specify a specific DbObject's property and value -- acts as a schema location pointer
* refactored Result code (need difference result and validation error result)





git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31527 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Matt Ward
2011-10-27 18:07:06 +00:00
parent 385003c6c9
commit 723fe98cf2
37 changed files with 1022 additions and 613 deletions

View File

@@ -37,11 +37,11 @@ public interface ComparisonUtils
*/
DbObject findSameObjectAs(Collection<? extends DbObject> objects, final DbObject objToFind);
void compareSimpleCollections(Collection<? extends Object> leftCollection,
Collection<? extends Object> rightCollection, DiffContext ctx, Strength strength);
void compareSimpleCollections(DbProperty leftProperty, DbProperty rightProperty,
DiffContext ctx, Strength strength);
/**
* Compare collections, reporting differences using the default {@link Result.Strength}
* Compare collections, reporting differences using the default {@link Difference.Strength}
*
* @see #compareCollections(Collection, Collection, Differences, Strength)
*/
@@ -50,7 +50,7 @@ public interface ComparisonUtils
/**
* Compare collections of {@link DbObject}s using their {@link DbObject#diff(DbObject, Differences)} method.
* Differences are reported using the specified {@link Result.Strength}.
* Differences are reported using the specified {@link Difference.Strength}.
*
* @param leftCollection
* @param rightCollection
@@ -66,7 +66,7 @@ public interface ComparisonUtils
*
* @see #compareSimple(Object, Object, Differences, Strength)
*/
void compareSimple(Object left, Object right, DiffContext ctx);
void compareSimple(DbProperty left, DbProperty right, DiffContext ctx);
/**
* Compare two 'simple' (i.e. non-{@link DbObject} objects) using their {@link Object#equals(Object)} method
@@ -77,6 +77,6 @@ public interface ComparisonUtils
* @param differences
* @param strength
*/
void compareSimple(Object left, Object right, DiffContext ctx, Strength strength);
void compareSimple(DbProperty left, DbProperty right, DiffContext ctx, Strength strength);
}