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 }