Modified: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/EmbeddableAttributeValidator.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/EmbeddableAttributeValidator.java?rev=911428&r1=911427&r2=911428&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/EmbeddableAttributeValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/EmbeddableAttributeValidator.java Thu Feb 18 15:03:38 2010 @@ -18,37 +18,23 @@ ****************************************************************/ package org.apache.cayenne.project2.validate; -import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.map.EmbeddableAttribute; -import org.apache.cayenne.project.ProjectPath; import org.apache.cayenne.util.Util; -public class EmbeddableAttributeValidator implements Validator { +class EmbeddableAttributeValidator { - public void validate(Object object, ConfigurationValidationVisitor validator) { + void validate(Object object, ConfigurationValidationVisitor validator) { EmbeddableAttribute emAttribute = (EmbeddableAttribute) object; - ProjectPath path = new ProjectPath(new Object[] { - (DataChannelDescriptor) validator.getProject().getRootNode(), - emAttribute.getEmbeddable().getDataMap(), - emAttribute.getEmbeddable(), emAttribute - }); - // Must have name if (Util.isEmptyString(emAttribute.getName())) { - validator.registerError("Unnamed ObjAttribute.", path); - } - - // skip validation of inherited attributes - if (path.getObjectParent() != null - && path.getObjectParent() != emAttribute.getEmbeddable()) { - return; + validator.registerError("Unnamed ObjAttribute.", object); } // all attributes must have type if (Util.isEmptyString(emAttribute.getType())) { - validator.registerWarning("EmbeddableAttribute has no type.", path); + validator.registerWarning("EmbeddableAttribute has no type.", object); } } }
Modified: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/EmbeddableValidator.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/EmbeddableValidator.java?rev=911428&r1=911427&r2=911428&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/EmbeddableValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/EmbeddableValidator.java Thu Feb 18 15:03:38 2010 @@ -21,28 +21,26 @@ import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.Embeddable; -import org.apache.cayenne.project.ProjectPath; import org.apache.cayenne.util.Util; -public class EmbeddableValidator implements Validator { +class EmbeddableValidator { - public void validate( + void validate( Object object, ConfigurationValidationVisitor configurationValidationVisitor) { Embeddable emb = (Embeddable) object; - ProjectPath path = new ProjectPath(); - validateName(emb, path, configurationValidationVisitor); + validateName(emb, object, configurationValidationVisitor); } - protected void validateName( + void validateName( Embeddable emb, - ProjectPath path, + Object object, ConfigurationValidationVisitor validator) { String name = emb.getClassName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed Embeddable.", path); + validator.registerError("Unnamed Embeddable.", object); return; } @@ -58,7 +56,9 @@ } if (name.equals(otherEmb.getClassName())) { - validator.registerError("Duplicate Embeddable name: " + name + ".", path); + validator.registerError( + "Duplicate Embeddable name: " + name + ".", + object); break; } } @@ -81,7 +81,7 @@ "Duplicate Embeddable name in another DataMap: " + name + ".", - path); + object); break; } } Modified: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ObjAttributeValidator.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ObjAttributeValidator.java?rev=911428&r1=911427&r2=911428&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ObjAttributeValidator.java (original) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ObjAttributeValidator.java Thu Feb 18 15:03:38 2010 @@ -27,23 +27,17 @@ import org.apache.cayenne.map.EmbeddedAttribute; import org.apache.cayenne.map.ObjAttribute; import org.apache.cayenne.map.ObjEntity; -import org.apache.cayenne.project.ProjectPath; import org.apache.cayenne.project.validator.MappingNamesHelper; import org.apache.cayenne.util.Util; -public class ObjAttributeValidator implements Validator { +class ObjAttributeValidator { - public void validate(Object object, ConfigurationValidationVisitor validator) { + void validate(Object object, ConfigurationValidationVisitor validator) { ObjAttribute attribute = (ObjAttribute) object; - ProjectPath path = new ProjectPath(new Object[] { - validator.getProject().getRootNode(), attribute.getEntity().getDataMap(), - attribute.getEntity(), attribute - }); - // Must have name if (Util.isEmptyString(attribute.getName())) { - validator.registerError("Unnamed ObjAttribute.", path); + validator.registerError("Unnamed ObjAttribute.", object); } else { MappingNamesHelper helper = MappingNamesHelper.getInstance(); @@ -53,17 +47,17 @@ if (invalidChars != null) { validator.registerWarning( "ObjAttribute name contains invalid characters: " + invalidChars, - path); + object); } else if (helper.invalidDataObjectProperty(attribute.getName())) { validator.registerWarning("ObjAttribute name is invalid: " - + attribute.getName(), path); + + attribute.getName(), object); } } // all attributes must have type if (Util.isEmptyString(attribute.getType())) { - validator.registerWarning("ObjAttribute has no type.", path); + validator.registerWarning("ObjAttribute has no type.", object); } if (attribute.getEntity() instanceof ObjEntity @@ -77,10 +71,10 @@ if (emb == null && ((EmbeddedAttribute) attribute).getType() != null) { validator.registerWarning( "EmbeddedAttribute has incorrect Embeddable.", - path); + object); } else if (emb == null && ((EmbeddedAttribute) attribute).getType() == null) { - validator.registerWarning("EmbeddedAttribute has no Embeddable.", path); + validator.registerWarning("EmbeddedAttribute has no Embeddable.", object); } if (emb != null) { @@ -101,30 +95,28 @@ if (dbAttributeName == "" || dbAttributeName == null) { validator.registerWarning( "EmbeddedAttribute has no DbAttribute mapping.", - path); + object); } else if (((ObjEntity) attribute.getEntity()) .getDbEntity() .getAttribute(dbAttributeName) == null) { validator.registerWarning( "EmbeddedAttribute has incorrect DbAttribute mapping.", - path); + object); } } } } else if (attribute.getDbAttribute() == null) { - validator.registerWarning("ObjAttribute has no DbAttribute mapping.", path); + validator.registerWarning("ObjAttribute has no DbAttribute mapping.", object); } // can't support generated meaningful attributes for now; besides they don't make // sense. else if (attribute.getDbAttribute().isPrimaryKey() && attribute.getDbAttribute().isGenerated()) { validator.registerWarning("ObjAttribute is mapped to a generated PK: " - + attribute.getDbAttributeName(), path); + + attribute.getDbAttributeName(), object); } - } - } Modified: 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/validate/ObjEntityValidator.java?rev=911428&r1=911427&r2=911428&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/validate/ObjEntityValidator.java Thu Feb 18 15:03:38 2010 @@ -21,33 +21,27 @@ import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.ObjEntity; -import org.apache.cayenne.project.ProjectPath; import org.apache.cayenne.project.validator.MappingNamesHelper; import org.apache.cayenne.util.Util; -public class ObjEntityValidator implements Validator { +class ObjEntityValidator { - public void validate(Object object, ConfigurationValidationVisitor validator) { + void validate(Object object, ConfigurationValidationVisitor validator) { ObjEntity ent = (ObjEntity) object; - ProjectPath path = new ProjectPath(new Object[] { - (DataChannelDescriptor) validator.getProject().getRootNode(), - ent.getDataMap(), ent - }); - - validateName(ent, path, validator); - validateClassName(ent, path, validator); - validateSuperClassName(ent, path, validator); + validateName(ent, object, validator); + validateClassName(ent, object, validator); + validateSuperClassName(ent, object, validator); // validate DbEntity presence if (ent.getDbEntity() == null && !ent.isAbstract()) { - validator.registerWarning("ObjEntity has no DbEntity mapping.", path); + validator.registerWarning("ObjEntity has no DbEntity mapping.", object); } } - private void validateClassName( + void validateClassName( ObjEntity ent, - ProjectPath path, + Object object, ConfigurationValidationVisitor validator) { String className = ent.getClassName(); @@ -62,23 +56,23 @@ if (invalidChars != null) { validator.registerWarning( "ObjEntity Java class contains invalid characters: " + invalidChars, - path); + object); } else if (helper.invalidDataObjectClass(className)) { validator.registerWarning( "ObjEntity Java class is invalid: " + className, - path); + object); } else if (className.indexOf('.') < 0) { validator.registerWarning( "Placing Java class in default package is discouraged: " + className, - path); + object); } } - private void validateSuperClassName( + void validateSuperClassName( ObjEntity ent, - ProjectPath path, + Object object, ConfigurationValidationVisitor validator) { String superClassName = ent.getSuperClassName(); @@ -93,11 +87,11 @@ validator.registerWarning( "ObjEntity Java superclass contains invalid characters: " + invalidChars, - path); + object); } else if (helper.invalidDataObjectClass(superClassName)) { validator.registerWarning("ObjEntity Java superclass is invalid: " - + superClassName, path); + + superClassName, object); } DataMap map = ent.getDataMap(); @@ -106,15 +100,15 @@ } } - protected void validateName( + void validateName( ObjEntity entity, - ProjectPath path, + Object object, ConfigurationValidationVisitor validator) { String name = entity.getName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed ObjEntity.", path); + validator.registerError("Unnamed ObjEntity.", object); return; } @@ -130,7 +124,8 @@ } if (name.equals(otherEnt.getName())) { - validator.registerError("Duplicate ObjEntity name: " + name + ".", path); + validator + .registerError("Duplicate ObjEntity name: " + name + ".", object); break; } } @@ -154,12 +149,11 @@ "Duplicate ObjEntity name in another DataMap: " + name + ".", - path); + object); break; } } } } } - } Modified: 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/validate/ObjRelationshipValidator.java?rev=911428&r1=911427&r2=911428&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/validate/ObjRelationshipValidator.java Thu Feb 18 15:03:38 2010 @@ -21,34 +21,28 @@ import java.util.Iterator; import java.util.List; -import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.map.DbEntity; import org.apache.cayenne.map.DbJoin; import org.apache.cayenne.map.DbRelationship; import org.apache.cayenne.map.DeleteRule; import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.map.ObjRelationship; -import org.apache.cayenne.project.ProjectPath; import org.apache.cayenne.project.validator.MappingNamesHelper; import org.apache.cayenne.util.Util; -public class ObjRelationshipValidator implements Validator { +class ObjRelationshipValidator { - public void validate(Object object, ConfigurationValidationVisitor validator) { + void validate(Object object, ConfigurationValidationVisitor validator) { ObjRelationship rel = (ObjRelationship) object; - ProjectPath path = new ProjectPath(new Object[]{(DataChannelDescriptor)validator.getProject().getRootNode(), - rel.getSourceEntity().getDataMap(), - rel.getSourceEntity(), rel}); - if (Util.isEmptyString(rel.getName())) { - validator.registerError("Unnamed ObjRelationship.", path); + validator.registerError("Unnamed ObjRelationship.", object); } // check if there are attributes having the same name else if (rel.getSourceEntity().getAttribute(rel.getName()) != null) { validator.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) - + " has the same name as one of ObjAttributes", path); + + " has the same name as one of ObjAttributes", object); } else { MappingNamesHelper helper = MappingNamesHelper.getInstance(); @@ -58,19 +52,19 @@ validator.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) + " name contains invalid characters: " - + invalidChars, path); + + invalidChars, object); } else if (helper.invalidDataObjectProperty(rel.getName())) { validator.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) - + " name is invalid.", path); + + " name is invalid.", object); } } if (rel.getTargetEntity() == null) { validator.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) - + " has no target entity.", path); + + " has no target entity.", object); } else { // check for missing DbRelationship mappings @@ -78,7 +72,7 @@ if (dbRels.size() == 0) { validator.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) - + " has no DbRelationship mapping.", path); + + " has no DbRelationship mapping.", object); } else { DbEntity expectedSrc = ((ObjEntity) rel.getSourceEntity()).getDbEntity(); @@ -86,11 +80,10 @@ .getDbEntity(); if ((dbRels.get(0)).getSourceEntity() != expectedSrc - || (dbRels.get(dbRels.size() - 1)) - .getTargetEntity() != expectedTarget) { + || (dbRels.get(dbRels.size() - 1)).getTargetEntity() != expectedTarget) { validator.registerWarning("ObjRelationship " + objRelationshipIdentifier(rel) - + " has incomplete DbRelationship mapping.", path); + + " has incomplete DbRelationship mapping.", object); } } } @@ -102,9 +95,7 @@ && (rel.getDeleteRule() == DeleteRule.NULLIFY)) { ObjRelationship inverse = rel.getReverseRelationship(); if (inverse != null) { - DbRelationship firstRel = inverse - .getDbRelationships() - .get(0); + DbRelationship firstRel = inverse.getDbRelationships().get(0); Iterator<DbJoin> attributePairIterator = firstRel.getJoins().iterator(); // by default, the relation will be check for mandatory. boolean check = true; @@ -116,20 +107,20 @@ break; } } - + if (check) { validator .registerWarning( "ObjRelationship " + objRelationshipIdentifier(rel) + " has a Nullify delete rule and a mandatory reverse relationship ", - path); + object); } } } } - public String objRelationshipIdentifier(ObjRelationship rel) { + String objRelationshipIdentifier(ObjRelationship rel) { if (null == rel.getSourceEntity()) { return "<[null source entity]." + rel.getName() + ">"; } Modified: 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/validate/ProcedureParameterValidator.java?rev=911428&r1=911427&r2=911428&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/validate/ProcedureParameterValidator.java Thu Feb 18 15:03:38 2010 @@ -18,32 +18,24 @@ ****************************************************************/ package org.apache.cayenne.project2.validate; -import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.dba.TypesMapping; import org.apache.cayenne.map.ProcedureParameter; -import org.apache.cayenne.project.ProjectPath; import org.apache.cayenne.util.Util; -public class ProcedureParameterValidator implements Validator { +class ProcedureParameterValidator { - public void validate(Object object, ConfigurationValidationVisitor validator) { + void validate(Object object, ConfigurationValidationVisitor validator) { ProcedureParameter parameter = (ProcedureParameter) object; - ProjectPath path = new ProjectPath(new Object[] { - (DataChannelDescriptor) validator.getProject().getRootNode(), - parameter.getProcedure().getDataMap(), parameter.getProcedure(), - parameter - }); - // Must have name if (Util.isEmptyString(parameter.getName())) { - validator.registerError("Unnamed ProcedureParameter.", path); + validator.registerError("Unnamed ProcedureParameter.", object); } // all attributes must have type if (parameter.getType() == TypesMapping.NOT_DEFINED) { - validator.registerWarning("ProcedureParameter has no type.", path); + validator.registerWarning("ProcedureParameter has no type.", object); } // VARCHAR and CHAR attributes must have max length @@ -52,15 +44,12 @@ validator.registerWarning( "Character procedure parameter doesn't have max length.", - path); + object); } // all attributes must have type if (parameter.getDirection() <= 0) { - validator.registerWarning( - "ProcedureParameter has no direction.", - path); + validator.registerWarning("ProcedureParameter has no direction.", object); } } - } Modified: 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/validate/ProcedureQueryValidator.java?rev=911428&r1=911427&r2=911428&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/validate/ProcedureQueryValidator.java Thu Feb 18 15:03:38 2010 @@ -18,37 +18,28 @@ ****************************************************************/ package org.apache.cayenne.project2.validate; -import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.Procedure; -import org.apache.cayenne.project.ProjectPath; import org.apache.cayenne.query.ProcedureQuery; import org.apache.cayenne.query.Query; import org.apache.cayenne.util.Util; -public class ProcedureQueryValidator implements Validator { +class ProcedureQueryValidator { - public void validate(Object object, ConfigurationValidationVisitor validator) { + void validate(Object object, ConfigurationValidationVisitor validator) { ProcedureQuery query = (ProcedureQuery) object; - ProjectPath path = new ProjectPath(new Object[] { - (DataChannelDescriptor) validator.getProject().getRootNode(), - query.getDataMap(), query - }); - - validateName(query, path, validator); - validateRoot(query, path, validator); + validateName(query, validator); + validateRoot(query, validator); } - private void validateRoot( - ProcedureQuery query, - ProjectPath path, - ConfigurationValidationVisitor validator) { - DataMap map = path.firstInstanceOf(DataMap.class); + void validateRoot(ProcedureQuery query, ConfigurationValidationVisitor validator) { + + DataMap map = query.getDataMap(); Object root = query.getRoot(); if (root == null && map != null) { - validator.registerWarning("Query has no root", path); + validator.registerWarning("Query has no root", query); } // procedure query only supports procedure root @@ -58,7 +49,7 @@ // procedure may have been deleted... if (map != null && map.getProcedure(procedure.getName()) != procedure) { validator.registerWarning("Invalid Procedure Root - " - + procedure.getName(), path); + + procedure.getName(), query); } return; @@ -66,24 +57,21 @@ if (root instanceof String) { if (map != null && map.getProcedure(root.toString()) == null) { - validator.registerWarning("Invalid Procedure Root - " + root, path); + validator.registerWarning("Invalid Procedure Root - " + root, query); } } } - private void validateName( - ProcedureQuery query, - ProjectPath path, - ConfigurationValidationVisitor validator) { + void validateName(ProcedureQuery query, ConfigurationValidationVisitor validator) { String name = query.getName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed Query.", path); + validator.registerError("Unnamed Query.", query); return; } - DataMap map = (DataMap) path.getObjectParent(); + DataMap map = query.getDataMap(); if (map == null) { return; } @@ -95,10 +83,9 @@ } if (name.equals(otherQuery.getName())) { - validator.registerError("Duplicate Query name: " + name + ".", path); + validator.registerError("Duplicate Query name: " + name + ".", query); break; } } } - } Modified: 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/validate/ProcedureValidator.java?rev=911428&r1=911427&r2=911428&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/validate/ProcedureValidator.java Thu Feb 18 15:03:38 2010 @@ -23,20 +23,14 @@ import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.Procedure; import org.apache.cayenne.map.ProcedureParameter; -import org.apache.cayenne.project.ProjectPath; import org.apache.cayenne.util.Util; -public class ProcedureValidator implements Validator { +class ProcedureValidator { - public void validate(Object object, ConfigurationValidationVisitor validator) { + void validate(Object object, ConfigurationValidationVisitor validator) { Procedure procedure = (Procedure) object; - ProjectPath path = new ProjectPath(new Object[] { - (DataChannelValidator) validator.getProject().getRootNode(), - procedure.getDataMap(), procedure - }); - - validateName(procedure, path, validator); + validateName(procedure, validator); // check that return value is present if (procedure.isReturningValue()) { @@ -44,24 +38,21 @@ if (parameters.size() == 0) { validator.registerWarning( "Procedure returns a value, but has no parameters.", - path); + object); } } } - protected void validateName( - Procedure procedure, - ProjectPath path, - ConfigurationValidationVisitor validator) { + void validateName(Procedure procedure, ConfigurationValidationVisitor validator) { String name = procedure.getName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed Procedure.", path); + validator.registerError("Unnamed Procedure.", procedure); return; } - DataMap map = (DataMap) path.getObjectParent(); + DataMap map = procedure.getDataMap(); if (map == null) { return; } @@ -73,7 +64,9 @@ } if (name.equals(otherProcedure.getName())) { - validator.registerError("Duplicate Procedure name: " + name + ".", path); + validator.registerError( + "Duplicate Procedure name: " + name + ".", + procedure); break; } } Modified: 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/validate/SQLTemplateValidator.java?rev=911428&r1=911427&r2=911428&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/validate/SQLTemplateValidator.java Thu Feb 18 15:03:38 2010 @@ -18,33 +18,23 @@ ****************************************************************/ package org.apache.cayenne.project2.validate; -import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.map.DataMap; -import org.apache.cayenne.project.ProjectPath; import org.apache.cayenne.query.Query; import org.apache.cayenne.query.SQLTemplate; import org.apache.cayenne.util.Util; -public class SQLTemplateValidator implements Validator { +class SQLTemplateValidator { - public void validate(Object object, ConfigurationValidationVisitor validator) { + void validate(Object object, ConfigurationValidationVisitor validator) { SQLTemplate query = (SQLTemplate) object; - ProjectPath path = new ProjectPath(new Object[] { - (DataChannelDescriptor) validator.getProject().getRootNode(), - query.getDataMap(), query - }); - - validateName(query, path, validator); - validateRoot(query, path, validator); - validateDefaultSQL(query, path, validator); + validateName(query, validator); + validateRoot(query, validator); + validateDefaultSQL(query, validator); } - private void validateDefaultSQL( - SQLTemplate query, - ProjectPath path, - ConfigurationValidationVisitor validator) { - + void validateDefaultSQL(SQLTemplate query, ConfigurationValidationVisitor validator) { + if (Util.isEmptyString(query.getDefaultTemplate())) { // see if there is at least one adapter-specific template... @@ -54,33 +44,27 @@ } } - validator.registerWarning("Query has no default SQL template", path); + validator.registerWarning("Query has no default SQL template", query); } } - private void validateRoot( - SQLTemplate query, - ProjectPath path, - ConfigurationValidationVisitor validator) { - DataMap map = path.firstInstanceOf(DataMap.class); + void validateRoot(SQLTemplate query, ConfigurationValidationVisitor validator) { + DataMap map = query.getDataMap(); if (query.getRoot() == null && map != null) { - validator.registerWarning("Query has no root", path); + validator.registerWarning("Query has no root", query); } } - private void validateName( - SQLTemplate query, - ProjectPath path, - ConfigurationValidationVisitor validator) { + void validateName(SQLTemplate query, ConfigurationValidationVisitor validator) { String name = query.getName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed Query.", path); + validator.registerError("Unnamed Query.", query); return; } - DataMap map = (DataMap) path.getObjectParent(); + DataMap map = query.getDataMap(); if (map == null) { return; } @@ -92,7 +76,7 @@ } if (name.equals(otherQuery.getName())) { - validator.registerError("Duplicate Query name: " + name + ".", path); + validator.registerError("Duplicate Query name: " + name + ".", query); break; } } Modified: 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/validate/SelectQueryValidator.java?rev=911428&r1=911427&r2=911428&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/validate/SelectQueryValidator.java Thu Feb 18 15:03:38 2010 @@ -18,82 +18,65 @@ ****************************************************************/ package org.apache.cayenne.project2.validate; -import org.apache.cayenne.access.QueryEngine; -import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.exp.Expression; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.Entity; -import org.apache.cayenne.project.ProjectPath; import org.apache.cayenne.query.Ordering; import org.apache.cayenne.query.PrefetchTreeNode; import org.apache.cayenne.query.Query; import org.apache.cayenne.query.SelectQuery; import org.apache.cayenne.util.Util; +class SelectQueryValidator { -public class SelectQueryValidator implements Validator{ - - public void validate(Object object, ConfigurationValidationVisitor validator) { + void validate(Object object, ConfigurationValidationVisitor validator) { SelectQuery query = (SelectQuery) object; - - ProjectPath path = new ProjectPath(new Object[] { - (DataChannelDescriptor) validator.getProject().getRootNode(), - query.getDataMap(), query - }); - validateName(query, path, validator); + validateName(query, validator); // Resolve root to Entity for further validation - Entity root = validateRoot(query, path, validator); + Entity root = validateRoot(query, validator); // validate path-based parts if (root != null) { - validateQualifier(root, query.getQualifier(), path, validator); + validateQualifier(root, query.getQualifier(), validator); for (final Ordering ordering : query.getOrderings()) { - validateOrdering( - root, - ordering, - path, - validator); + validateOrdering(root, ordering, validator); } if (query.getPrefetchTree() != null) { - for (final PrefetchTreeNode prefetchTreeNode : query.getPrefetchTree().nonPhantomNodes()) { - validatePrefetch(root, prefetchTreeNode.getPath(), path, validator); + for (final PrefetchTreeNode prefetchTreeNode : query + .getPrefetchTree() + .nonPhantomNodes()) { + validatePrefetch(root, prefetchTreeNode.getPath(), validator); } } } } - private void validatePrefetch( + void validatePrefetch( Entity root, String path, - ProjectPath path2, ConfigurationValidationVisitor validator) { } - private void validateOrdering( + void validateOrdering( Entity root, Ordering ordering, - ProjectPath path, ConfigurationValidationVisitor validator) { } - private void validateQualifier( + void validateQualifier( Entity root, Expression qualifier, - ProjectPath path, ConfigurationValidationVisitor validator) { } - private Entity validateRoot( - SelectQuery query, - ProjectPath path, - ConfigurationValidationVisitor validator) { - DataMap map = path.firstInstanceOf(DataMap.class); + Entity validateRoot(SelectQuery query, ConfigurationValidationVisitor validator) { + DataMap map = query.getDataMap(); if (query.getRoot() == null && map != null) { - validator.registerWarning("Query has no root", path); + validator.registerWarning("Query has no root", query); return null; } @@ -119,29 +102,26 @@ // resolve entity if (query.getRoot() instanceof String) { - QueryEngine parent = path.firstInstanceOf(QueryEngine.class); + DataMap parent = query.getDataMap(); if (parent != null) { - return parent.getEntityResolver().getObjEntity((String) query.getRoot()); + return parent.getNamespace().getObjEntity((String) query.getRoot()); } } return null; } - private void validateName( - SelectQuery query, - ProjectPath path, - ConfigurationValidationVisitor validator) { + void validateName(SelectQuery query, ConfigurationValidationVisitor validator) { String name = query.getName(); // Must have name if (Util.isEmptyString(name)) { - validator.registerError("Unnamed SelectQuery.", path); + validator.registerError("Unnamed SelectQuery.", query); return; } - DataMap map = (DataMap) path.getObjectParent(); + DataMap map = query.getDataMap(); if (map == null) { return; } @@ -154,10 +134,9 @@ } if (name.equals(otherQuery.getName())) { - validator.registerError("Duplicate Query name: " + name + ".", path); + validator.registerError("Duplicate Query name: " + name + ".", query); break; } } } - } Added: 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/validate/ValidationInfo.java?rev=911428&view=auto ============================================================================== --- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ValidationInfo.java (added) +++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/validate/ValidationInfo.java Thu Feb 18 15:03:38 2010 @@ -0,0 +1,77 @@ +/***************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + ****************************************************************/ +package org.apache.cayenne.project2.validate; + +/** + * ValidationInfo encapsulates information about a single node validation on the project + * tree. + */ +public class ValidationInfo { + + public static final int VALID = 0; + public static final int WARNING = 1; + public static final int ERROR = 2; + + protected Object path; + protected String message; + protected int severity; + + /** + * Constructor for ValidationInfo. + */ + public ValidationInfo(int severity, String message, Object path) { + this.severity = severity; + this.message = message; + this.path = path; + } + + public Object getValidatedObject() { + return path; + } + + @Override + public String toString() { + return getMessage(); + } + + /** + * Returns the message. + * + * @return String + */ + public String getMessage() { + return message; + } + + /** + * Returns the severity. + * + * @return int + */ + public int getSeverity() { + return severity; + } + + /** + * Returns the object identifing a location described by this ValidationInfo. + */ + public Object getPath() { + return path; + } +}
