1
2
3
4
5
6
7 package org.asyrinx.joey.gen.command.rdb;
8
9 import org.apache.commons.lang.StringUtils;
10 import org.asyrinx.joey.gen.model.rdb.ForeignKey;
11 import org.asyrinx.joey.gen.model.rdb.ForeignKeyEntry;
12 import org.asyrinx.joey.gen.model.rdb.Table;
13
14 /***
15 * @author akima
16 */
17 public class CheckForeignKey extends RdbCommand {
18
19
20
21
22
23
24 public void visit(ForeignKey foreignKey) {
25 if (StringUtils.isEmpty(foreignKey.getForeign()))
26 addError(foreignKey, "foreignKey requires foreignTable");
27 final Table foreignTable = foreignKey.getForeignTable();
28 if (foreignTable == null)
29 addError(foreignKey, "table '" + foreignKey.getForeign() + "' not found");
30 }
31
32
33
34
35
36
37 public void visit(ForeignKeyEntry entry) {
38 if (StringUtils.isEmpty(entry.getLocal()))
39 addError(entry, "foreignKeyEntry requires local");
40 if (StringUtils.isEmpty(entry.getForeign()))
41 addError(entry, "foreignKeyEntry requires foreign");
42 final ForeignKey foreignKey = entry.getParent();
43 if (entry.getLocalColumn() == null)
44 addError(entry, "column '" + entry.getLocal() + "' not found in table '"
45 + foreignKey.getLocal().getFullName() + "'");
46 if (entry.getForeignColumn() == null)
47 addError(entry, "column '" + entry.getForeign() + "' not found in table '"
48 + foreignKey.getForeignTable().getFullName() + "'");
49 }
50
51 }