1
2
3
4
5
6
7 package org.asyrinx.joey.gen.command.rdb;
8
9 import org.asyrinx.brownie.core.lang.StringUtils;
10 import org.asyrinx.joey.gen.model.rdb.Column;
11 import org.asyrinx.joey.gen.model.rdb.Database;
12 import org.asyrinx.joey.gen.model.rdb.ForeignKey;
13 import org.asyrinx.joey.gen.model.rdb.ForeignKeyEntry;
14 import org.asyrinx.joey.gen.model.rdb.ForeignKeyType;
15 import org.asyrinx.joey.gen.model.rdb.Table;
16
17 /***
18 * @author takeshi
19 */
20 public class PrepareColumnFk extends RdbCommand {
21
22 /***
23 *
24 */
25 public PrepareColumnFk() {
26 super();
27 }
28
29
30
31
32
33
34 public void visit(Column column) {
35 if (StringUtils.isEmpty(column.getFk()))
36 return;
37 final Table localTable = column.getParent();
38 final Database db = localTable.getParent();
39 final Column fkCol = db.getColumn(column.getFk());
40 if (fkCol == null) {
41 addError(column, "cannot find:" + column.getFk());
42 return;
43 }
44 final ForeignKey foreignKey = new ForeignKey(localTable, fkCol.getParent().getName());
45 foreignKey.setLabel(column.getLabel());
46 foreignKey.setType(ForeignKeyType.NORMAL);
47 foreignKey.setCascade(column.getFkCascade());
48 new ForeignKeyEntry(foreignKey, column.getName(), fkCol.getName());
49 }
50
51 }