Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/objectstyle/cayenne/project/validator/ProcedureParameterValidator.java


1   package org.objectstyle.cayenne.project.validator;
2   
3   import org.apache.log4j.Logger;
4   import org.objectstyle.cayenne.dba.TypesMapping;
5   import org.objectstyle.cayenne.map.ProcedureParameter;
6   import org.objectstyle.cayenne.project.ProjectPath;
7   import org.objectstyle.cayenne.util.Util;
8   
9   /**
10   * Validator for stored procedure parameters.
11   * 
12   * @author Andrei Adamchik
13   */
14  public class ProcedureParameterValidator extends TreeNodeValidator {
15      private static Logger logObj = Logger.getLogger(ProcedureParameterValidator.class);
16  
17      public void validateObject(ProjectPath treeNodePath, Validator validator) {
18          ProcedureParameter parameter = (ProcedureParameter) treeNodePath.getObject();
19  
20          // Must have name
21          if (Util.isEmptyString(parameter.getName())) {
22              validator.registerError("Unnamed ProcedureParameter.", treeNodePath);
23          }
24  
25          // all attributes must have type
26          if (parameter.getType() == TypesMapping.NOT_DEFINED) {
27              validator.registerWarning("ProcedureParameter has no type.", treeNodePath);
28          }
29  
30          // VARCHAR and CHAR attributes must have max length
31          if (parameter.getMaxLength() < 0
32              && (parameter.getType() == java.sql.Types.VARCHAR
33                  || parameter.getType() == java.sql.Types.CHAR)) {
34  
35              validator.registerWarning(
36                  "Character procedure parameter doesn't have max length.",
37                  treeNodePath);
38          }
39  
40          // all attributes must have type
41          if (parameter.getDirection() <= 0) {
42              validator.registerWarning(
43                  "ProcedureParameter has no direction.",
44                  treeNodePath);
45          }
46  
47      }
48  }