Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ObjEntityValidator.java (from r912580, cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ObjEntityValidator.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ObjEntityValidator.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ObjEntityValidator.java&p1=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ObjEntityValidator.java&r1=912580&r2=912581&rev=912581&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ObjEntityValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ObjEntityValidator.java Mon Feb 22 14:30:51 2010 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.project2.validate; +package org.apache.cayenne.project2.validation; import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.map.DataMap; @@ -26,23 +26,25 @@ class ObjEntityValidator { - void validate(Object object, ConfigurationValidator validator) { + void validate(Object object, ValidationVisitor validationVisitor) { ObjEntity ent = (ObjEntity) object; - validateName(ent, object, validator); - validateClassName(ent, object, validator); - validateSuperClassName(ent, object, validator); + validateName(ent, object, validationVisitor); + validateClassName(ent, object, validationVisitor); + validateSuperClassName(ent, object, validationVisitor); // validate DbEntity presence if (ent.getDbEntity() == null && !ent.isAbstract()) { - validator.registerWarning("ObjEntity has no DbEntity mapping.", object); + validationVisitor.registerWarning( + "ObjEntity has no DbEntity mapping.", + object); } } void validateClassName( ObjEntity ent, Object object, - ConfigurationValidator validator) { + ValidationVisitor validationVisitor) { String className = ent.getClassName(); // if mapped to default class, ignore... @@ -54,17 +56,16 @@ String invalidChars = helper.invalidCharsInJavaClassName(className); if (invalidChars != null) { - validator.registerWarning( + validationVisitor.registerWarning( "ObjEntity Java class contains invalid characters: " + invalidChars, object); } else if (helper.invalidDataObjectClass(className)) { - validator.registerWarning( - "ObjEntity Java class is invalid: " + className, - object); + validationVisitor.registerWarning("ObjEntity Java class is invalid: " + + className, object); } else if (className.indexOf('.') < 0) { - validator.registerWarning( + validationVisitor.registerWarning( "Placing Java class in default package is discouraged: " + className, object); } @@ -73,7 +74,7 @@ void validateSuperClassName( ObjEntity ent, Object object, - ConfigurationValidator validator) { + ValidationVisitor validationVisitor) { String superClassName = ent.getSuperClassName(); if (Util.isEmptyString(superClassName)) { @@ -84,13 +85,13 @@ String invalidChars = helper.invalidCharsInJavaClassName(superClassName); if (invalidChars != null) { - validator.registerWarning( + validationVisitor.registerWarning( "ObjEntity Java superclass contains invalid characters: " + invalidChars, object); } else if (helper.invalidDataObjectClass(superClassName)) { - validator.registerWarning("ObjEntity Java superclass is invalid: " + validationVisitor.registerWarning("ObjEntity Java superclass is invalid: " + superClassName, object); } @@ -100,15 +101,12 @@ } } - void validateName( - ObjEntity entity, - Object object, - ConfigurationValidator validator) { + void validateName(ObjEntity entity, Object object, ValidationVisitor validationVisitor) { String name = entity.getName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed ObjEntity.", object); + validationVisitor.registerError("Unnamed ObjEntity.", object); return; } @@ -124,14 +122,15 @@ } if (name.equals(otherEnt.getName())) { - validator - .registerError("Duplicate ObjEntity name: " + name + ".", object); + validationVisitor.registerError( + "Duplicate ObjEntity name: " + name + ".", + object); break; } } // check for dupliucates in other DataMaps - DataChannelDescriptor domain = (DataChannelDescriptor) validator + DataChannelDescriptor domain = (DataChannelDescriptor) validationVisitor .getProject() .getRootNode(); if (domain != null) { @@ -145,7 +144,7 @@ if (!Util.nullSafeEquals(conflictingEntity.getClassName(), entity .getClassName())) { - validator.registerWarning( + validationVisitor.registerWarning( "Duplicate ObjEntity name in another DataMap: " + name + ".",
Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ObjRelationshipValidator.java (from r912580, cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ObjRelationshipValidator.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ObjRelationshipValidator.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ObjRelationshipValidator.java&p1=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ObjRelationshipValidator.java&r1=912580&r2=912581&rev=912581&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ObjRelationshipValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ObjRelationshipValidator.java Mon Feb 22 14:30:51 2010 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.project2.validate; +package org.apache.cayenne.project2.validation; import java.util.Iterator; import java.util.List; @@ -32,15 +32,15 @@ class ObjRelationshipValidator { - void validate(Object object, ConfigurationValidator validator) { + void validate(Object object, ValidationVisitor validationVisitor) { ObjRelationship rel = (ObjRelationship) object; if (Util.isEmptyString(rel.getName())) { - validator.registerError("Unnamed ObjRelationship.", object); + validationVisitor.registerError("Unnamed ObjRelationship.", object); } // check if there are attributes having the same name else if (rel.getSourceEntity().getAttribute(rel.getName()) != null) { - validator.registerWarning("ObjRelationship " + validationVisitor.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) + " has the same name as one of ObjAttributes", object); } @@ -49,20 +49,20 @@ String invalidChars = helper.invalidCharsInObjPathComponent(rel.getName()); if (invalidChars != null) { - validator.registerWarning("ObjRelationship " + validationVisitor.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) + " name contains invalid characters: " + invalidChars, object); } else if (helper.invalidDataObjectProperty(rel.getName())) { - validator.registerWarning("ObjRelationship " + validationVisitor.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) + " name is invalid.", object); } } if (rel.getTargetEntity() == null) { - validator.registerWarning("ObjRelationship " + validationVisitor.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) + " has no target entity.", object); } @@ -70,7 +70,7 @@ // check for missing DbRelationship mappings List<DbRelationship> dbRels = rel.getDbRelationships(); if (dbRels.size() == 0) { - validator.registerWarning("ObjRelationship " + validationVisitor.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) + " has no DbRelationship mapping.", object); } @@ -81,7 +81,7 @@ if ((dbRels.get(0)).getSourceEntity() != expectedSrc || (dbRels.get(dbRels.size() - 1)).getTargetEntity() != expectedTarget) { - validator.registerWarning("ObjRelationship " + validationVisitor.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) + " has incomplete DbRelationship mapping.", object); } @@ -109,7 +109,7 @@ } if (check) { - validator + validationVisitor .registerWarning( "ObjRelationship " + objRelationshipIdentifier(rel) Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureParameterValidator.java (from r912580, cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ProcedureParameterValidator.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureParameterValidator.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureParameterValidator.java&p1=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ProcedureParameterValidator.java&r1=912580&r2=912581&rev=912581&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ProcedureParameterValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureParameterValidator.java Mon Feb 22 14:30:51 2010 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.project2.validate; +package org.apache.cayenne.project2.validation; import org.apache.cayenne.dba.TypesMapping; import org.apache.cayenne.map.ProcedureParameter; @@ -24,32 +24,34 @@ class ProcedureParameterValidator { - void validate(Object object, ConfigurationValidator validator) { + void validate(Object object, ValidationVisitor validationVisitor) { ProcedureParameter parameter = (ProcedureParameter) object; // Must have name if (Util.isEmptyString(parameter.getName())) { - validator.registerError("Unnamed ProcedureParameter.", object); + validationVisitor.registerError("Unnamed ProcedureParameter.", object); } // all attributes must have type if (parameter.getType() == TypesMapping.NOT_DEFINED) { - validator.registerWarning("ProcedureParameter has no type.", object); + validationVisitor.registerWarning("ProcedureParameter has no type.", object); } // VARCHAR and CHAR attributes must have max length if (parameter.getMaxLength() < 0 && (parameter.getType() == java.sql.Types.VARCHAR || parameter.getType() == java.sql.Types.CHAR)) { - validator.registerWarning( + validationVisitor.registerWarning( "Character procedure parameter doesn't have max length.", object); } // all attributes must have type if (parameter.getDirection() <= 0) { - validator.registerWarning("ProcedureParameter has no direction.", object); + validationVisitor.registerWarning( + "ProcedureParameter has no direction.", + object); } } } Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureQueryValidator.java (from r912580, cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ProcedureQueryValidator.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureQueryValidator.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureQueryValidator.java&p1=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ProcedureQueryValidator.java&r1=912580&r2=912581&rev=912581&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ProcedureQueryValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureQueryValidator.java Mon Feb 22 14:30:51 2010 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.project2.validate; +package org.apache.cayenne.project2.validation; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.Procedure; @@ -26,20 +26,20 @@ class ProcedureQueryValidator { - void validate(Object object, ConfigurationValidator validator) { + void validate(Object object, ValidationVisitor validationVisitor) { ProcedureQuery query = (ProcedureQuery) object; - validateName(query, validator); - validateRoot(query, validator); + validateName(query, validationVisitor); + validateRoot(query, validationVisitor); } - void validateRoot(ProcedureQuery query, ConfigurationValidator validator) { + void validateRoot(ProcedureQuery query, ValidationVisitor validationVisitor) { DataMap map = query.getDataMap(); Object root = query.getRoot(); if (root == null && map != null) { - validator.registerWarning("Query has no root", query); + validationVisitor.registerWarning("Query has no root", query); } // procedure query only supports procedure root @@ -48,7 +48,7 @@ // procedure may have been deleted... if (map != null && map.getProcedure(procedure.getName()) != procedure) { - validator.registerWarning("Invalid Procedure Root - " + validationVisitor.registerWarning("Invalid Procedure Root - " + procedure.getName(), query); } @@ -57,17 +57,19 @@ if (root instanceof String) { if (map != null && map.getProcedure(root.toString()) == null) { - validator.registerWarning("Invalid Procedure Root - " + root, query); + validationVisitor.registerWarning( + "Invalid Procedure Root - " + root, + query); } } } - void validateName(ProcedureQuery query, ConfigurationValidator validator) { + void validateName(ProcedureQuery query, ValidationVisitor validationVisitor) { String name = query.getName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed Query.", query); + validationVisitor.registerError("Unnamed Query.", query); return; } @@ -83,7 +85,9 @@ } if (name.equals(otherQuery.getName())) { - validator.registerError("Duplicate Query name: " + name + ".", query); + validationVisitor.registerError( + "Duplicate Query name: " + name + ".", + query); break; } } Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureValidator.java (from r912580, cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ProcedureValidator.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureValidator.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureValidator.java&p1=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ProcedureValidator.java&r1=912580&r2=912581&rev=912581&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ProcedureValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProcedureValidator.java Mon Feb 22 14:30:51 2010 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.project2.validate; +package org.apache.cayenne.project2.validation; import java.util.List; @@ -27,28 +27,28 @@ class ProcedureValidator { - void validate(Object object, ConfigurationValidator validator) { + void validate(Object object, ValidationVisitor validationVisitor) { Procedure procedure = (Procedure) object; - validateName(procedure, validator); + validateName(procedure, validationVisitor); // check that return value is present if (procedure.isReturningValue()) { List<ProcedureParameter> parameters = procedure.getCallParameters(); if (parameters.size() == 0) { - validator.registerWarning( + validationVisitor.registerWarning( "Procedure returns a value, but has no parameters.", object); } } } - void validateName(Procedure procedure, ConfigurationValidator validator) { + void validateName(Procedure procedure, ValidationVisitor validationVisitor) { String name = procedure.getName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed Procedure.", procedure); + validationVisitor.registerError("Unnamed Procedure.", procedure); return; } @@ -64,7 +64,7 @@ } if (name.equals(otherProcedure.getName())) { - validator.registerError( + validationVisitor.registerError( "Duplicate Procedure name: " + name + ".", procedure); break; Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProjectValidator.java (from r912580, cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/Validator.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProjectValidator.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProjectValidator.java&p1=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/Validator.java&r1=912580&r2=912581&rev=912581&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/Validator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ProjectValidator.java Mon Feb 22 14:30:51 2010 @@ -16,12 +16,12 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.project2.validate; +package org.apache.cayenne.project2.validation; import org.apache.cayenne.configuration.ConfigurationNode; import org.apache.cayenne.project2.Project; -public interface Validator { +public interface ProjectValidator { - public ConfigurationValidator validate(ConfigurationNode node, Project project); + public ValidationResults validate(ConfigurationNode node, Project project); } Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/SQLTemplateValidator.java (from r912580, cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/SQLTemplateValidator.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/SQLTemplateValidator.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/SQLTemplateValidator.java&p1=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/SQLTemplateValidator.java&r1=912580&r2=912581&rev=912581&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/SQLTemplateValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/SQLTemplateValidator.java Mon Feb 22 14:30:51 2010 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.project2.validate; +package org.apache.cayenne.project2.validation; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.query.Query; @@ -25,15 +25,15 @@ class SQLTemplateValidator { - void validate(Object object, ConfigurationValidator validator) { + void validate(Object object, ValidationVisitor validationVisitor) { SQLTemplate query = (SQLTemplate) object; - validateName(query, validator); - validateRoot(query, validator); - validateDefaultSQL(query, validator); + validateName(query, validationVisitor); + validateRoot(query, validationVisitor); + validateDefaultSQL(query, validationVisitor); } - void validateDefaultSQL(SQLTemplate query, ConfigurationValidator validator) { + void validateDefaultSQL(SQLTemplate query, ValidationVisitor validationVisitor) { if (Util.isEmptyString(query.getDefaultTemplate())) { // see if there is at least one adapter-specific template... @@ -44,23 +44,23 @@ } } - validator.registerWarning("Query has no default SQL template", query); + validationVisitor.registerWarning("Query has no default SQL template", query); } } - void validateRoot(SQLTemplate query, ConfigurationValidator validator) { + void validateRoot(SQLTemplate query, ValidationVisitor validationVisitor) { DataMap map = query.getDataMap(); if (query.getRoot() == null && map != null) { - validator.registerWarning("Query has no root", query); + validationVisitor.registerWarning("Query has no root", query); } } - void validateName(SQLTemplate query, ConfigurationValidator validator) { + void validateName(SQLTemplate query, ValidationVisitor validationVisitor) { String name = query.getName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed Query.", query); + validationVisitor.registerError("Unnamed Query.", query); return; } @@ -76,7 +76,9 @@ } if (name.equals(otherQuery.getName())) { - validator.registerError("Duplicate Query name: " + name + ".", query); + validationVisitor.registerError( + "Duplicate Query name: " + name + ".", + query); break; } } Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/SelectQueryValidator.java (from r912580, cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/SelectQueryValidator.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/SelectQueryValidator.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/SelectQueryValidator.java&p1=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/SelectQueryValidator.java&r1=912580&r2=912581&rev=912581&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/SelectQueryValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/SelectQueryValidator.java Mon Feb 22 14:30:51 2010 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.project2.validate; +package org.apache.cayenne.project2.validation; import org.apache.cayenne.exp.Expression; import org.apache.cayenne.map.DataMap; @@ -29,54 +29,51 @@ class SelectQueryValidator { - void validate(Object object, ConfigurationValidator validator) { + void validate(Object object, ValidationVisitor validationVisitor) { SelectQuery query = (SelectQuery) object; - validateName(query, validator); + validateName(query, validationVisitor); // Resolve root to Entity for further validation - Entity root = validateRoot(query, validator); + Entity root = validateRoot(query, validationVisitor); // validate path-based parts if (root != null) { - validateQualifier(root, query.getQualifier(), validator); + validateQualifier(root, query.getQualifier(), validationVisitor); for (final Ordering ordering : query.getOrderings()) { - validateOrdering(root, ordering, validator); + validateOrdering(root, ordering, validationVisitor); } if (query.getPrefetchTree() != null) { for (final PrefetchTreeNode prefetchTreeNode : query .getPrefetchTree() .nonPhantomNodes()) { - validatePrefetch(root, prefetchTreeNode.getPath(), validator); + validatePrefetch(root, prefetchTreeNode.getPath(), validationVisitor); } } } } - void validatePrefetch( - Entity root, - String path, - ConfigurationValidator validator) { + void validatePrefetch(Entity root, String path, ValidationVisitor validationVisitor) { } void validateOrdering( Entity root, Ordering ordering, - ConfigurationValidator validator) { + ValidationVisitor validationVisitor) { } void validateQualifier( Entity root, Expression qualifier, - ConfigurationValidator validator) { + ValidationVisitor validationVisitor) { } - Entity validateRoot(SelectQuery query, ConfigurationValidator validator) { + Entity validateRoot(SelectQuery query, ValidationVisitor validationVisitor) { DataMap map = query.getDataMap(); if (query.getRoot() == null && map != null) { - validator.registerWarning("Query has no root", query); + validationVisitor.registerWarning("Query has no root", query); return null; } @@ -112,12 +109,12 @@ return null; } - void validateName(SelectQuery query, ConfigurationValidator validator) { + void validateName(SelectQuery query, ValidationVisitor validationVisitor) { String name = query.getName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed SelectQuery.", query); + validationVisitor.registerError("Unnamed SelectQuery.", query); return; } @@ -134,7 +131,9 @@ } if (name.equals(otherQuery.getName())) { - validator.registerError("Duplicate Query name: " + name + ".", query); + validationVisitor.registerError( + "Duplicate Query name: " + name + ".", + query); break; } } Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ValidationInfo.java (from r912580, cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ValidationInfo.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ValidationInfo.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ValidationInfo.java&p1=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ValidationInfo.java&r1=912580&r2=912581&rev=912581&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ValidationInfo.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ValidationInfo.java Mon Feb 22 14:30:51 2010 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.project2.validate; +package org.apache.cayenne.project2.validation; /** * ValidationInfo encapsulates information about a single node validation on the project @@ -44,7 +44,7 @@ /** * Returns the object identifing a location described by this ValidationInfo. */ - public Object getValidatedObject() { + public Object getObject() { return object; } Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ValidationResults.java (from r912580, cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ConfigurationValidator.java) URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ValidationResults.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ValidationResults.java&p1=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ConfigurationValidator.java&r1=912580&r2=912581&rev=912581&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ConfigurationValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validation/ValidationResults.java Mon Feb 22 14:30:51 2010 @@ -16,12 +16,13 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.project2.validate; +package org.apache.cayenne.project2.validation; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.apache.cayenne.configuration.ConfigurationNode; import org.apache.cayenne.configuration.ConfigurationNodeVisitor; import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.configuration.DataNodeDescriptor; @@ -43,17 +44,18 @@ import org.apache.cayenne.query.SQLTemplate; import org.apache.cayenne.query.SelectQuery; -public class ConfigurationValidator implements ConfigurationNodeVisitor<List<ValidationInfo>> { +public class ValidationResults { - private List<ValidationInfo> validationResults = new ArrayList<ValidationInfo>(); - + private List<ValidationInfo> validationResults; private int maxSeverity; - private Project project; - DefaultValidator defaultValidator; - ConfigurationValidator(Project project, DefaultValidator defaultValidator) { - this.project = project; - this.defaultValidator = defaultValidator; + public ValidationResults(ConfigurationNode node, Project project, + DefaultProjectValidator defaultProjectValidator) { + ValidationVisitor vis = new ValidationVisitor( + defaultProjectValidator, + project); + validationResults = node.acceptVisitor(vis); + this.maxSeverity = vis.getMaxSeverity(); } public int getMaxSeverity() { @@ -63,14 +65,33 @@ public List<ValidationInfo> getValidationResults() { return validationResults; } - +} + +class ValidationVisitor implements ConfigurationNodeVisitor<List<ValidationInfo>> { + + private List<ValidationInfo> validationResults = new ArrayList<ValidationInfo>(); + private int maxSeverity; + + private DefaultProjectValidator defaultProjectValidator; + private Project project; + + int getMaxSeverity() { + return maxSeverity; + } + Project getProject() { return project; } + ValidationVisitor(DefaultProjectValidator defaultProjectValidator, + Project project) { + this.defaultProjectValidator = defaultProjectValidator; + this.project = project; + } + public List<ValidationInfo> visitDataChannelDescriptor( DataChannelDescriptor channelDescriptor) { - defaultValidator.getDataChannelValidator().validate( + defaultProjectValidator.getDataChannelValidator().validate( channelDescriptor, this); Iterator<DataNodeDescriptor> it = channelDescriptor @@ -90,7 +111,7 @@ } public List<ValidationInfo> visitDataMap(DataMap dataMap) { - defaultValidator.getMapValidator().validate(dataMap, this); + defaultProjectValidator.getMapValidator().validate(dataMap, this); Iterator<Embeddable> itEmb = dataMap.getEmbeddables().iterator(); while (itEmb.hasNext()) { Embeddable emb = itEmb.next(); @@ -125,17 +146,17 @@ } public List<ValidationInfo> visitDataNodeDescriptor(DataNodeDescriptor nodeDescriptor) { - defaultValidator.getNodeValidator().validate(nodeDescriptor, this); + defaultProjectValidator.getNodeValidator().validate(nodeDescriptor, this); return validationResults; } public List<ValidationInfo> visitDbAttribute(DbAttribute attribute) { - defaultValidator.getDbAttrValidator().validate(attribute, this); + defaultProjectValidator.getDbAttrValidator().validate(attribute, this); return validationResults; } public List<ValidationInfo> visitDbEntity(DbEntity entity) { - defaultValidator.getDbEntityValidator().validate(entity, this); + defaultProjectValidator.getDbEntityValidator().validate(entity, this); Iterator<DbAttribute> itAttr = entity.getAttributes().iterator(); while (itAttr.hasNext()) { @@ -152,12 +173,12 @@ } public List<ValidationInfo> visitDbRelationship(DbRelationship relationship) { - defaultValidator.getDbRelValidator().validate(relationship, this); + defaultProjectValidator.getDbRelValidator().validate(relationship, this); return validationResults; } public List<ValidationInfo> visitEmbeddable(Embeddable embeddable) { - defaultValidator.getEmbeddableValidator().validate(embeddable, this); + defaultProjectValidator.getEmbeddableValidator().validate(embeddable, this); Iterator<EmbeddableAttribute> it = embeddable.getAttributes().iterator(); while (it.hasNext()) { EmbeddableAttribute attr = it.next(); @@ -167,19 +188,19 @@ } public List<ValidationInfo> visitEmbeddableAttribute(EmbeddableAttribute attribute) { - defaultValidator.getEmbeddableAttributeValidator().validate( + defaultProjectValidator.getEmbeddableAttributeValidator().validate( attribute, this); return validationResults; } public List<ValidationInfo> visitObjAttribute(ObjAttribute attribute) { - defaultValidator.getObjAttrValidator().validate(attribute, this); + defaultProjectValidator.getObjAttrValidator().validate(attribute, this); return validationResults; } public List<ValidationInfo> visitObjEntity(ObjEntity entity) { - defaultValidator.getObjEntityValidator().validate(entity, this); + defaultProjectValidator.getObjEntityValidator().validate(entity, this); Iterator<ObjAttribute> itAttr = entity.getAttributes().iterator(); while (itAttr.hasNext()) { @@ -196,12 +217,12 @@ } public List<ValidationInfo> visitObjRelationship(ObjRelationship relationship) { - defaultValidator.getObjRelValidator().validate(relationship, this); + defaultProjectValidator.getObjRelValidator().validate(relationship, this); return validationResults; } public List<ValidationInfo> visitProcedure(Procedure procedure) { - defaultValidator.getProcedureValidator().validate(procedure, this); + defaultProjectValidator.getProcedureValidator().validate(procedure, this); ProcedureParameter parameter = procedure.getResultParam(); visitProcedureParameter(parameter); Iterator<ProcedureParameter> itPrOut = procedure @@ -221,24 +242,24 @@ } public List<ValidationInfo> visitProcedureParameter(ProcedureParameter parameter) { - defaultValidator.getProcedureParameterValidator().validate( - parameter, - this); + defaultProjectValidator + .getProcedureParameterValidator() + .validate(parameter, this); return validationResults; } public List<ValidationInfo> visitQuery(Query query) { if (query instanceof SelectQuery) { - defaultValidator.getSelectQueryValidator().validate(query, this); + defaultProjectValidator.getSelectQueryValidator().validate(query, this); } else if (query instanceof SQLTemplate) { - defaultValidator.getSqlTemplateValidator().validate(query, this); + defaultProjectValidator.getSqlTemplateValidator().validate(query, this); } else if (query instanceof ProcedureQuery) { - defaultValidator.getProcedureQueryValidator().validate(query, this); + defaultProjectValidator.getProcedureQueryValidator().validate(query, this); } else if (query instanceof EJBQLQuery) { - defaultValidator.getEjbqlQueryValidator().validate(query, this); + defaultProjectValidator.getEjbqlQueryValidator().validate(query, this); } else { // ignore unknown nodes @@ -267,9 +288,4 @@ public void registerWarning(String message, Object object) { registerValidated(ValidationInfo.WARNING, message, object); } - - /** Return collection of ValidationInfo objects from last validation. */ - public List<ValidationInfo> validationResults() { - return validationResults; - } } \ No newline at end of file
