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;
+    }
+}


Reply via email to