database.setTypes(types);
for (int i = 0; i < meta.getTables().length(); i++) {
JsTable jst = meta.getTables().get(i);
Table t = new Table(jst.getName());
t.setLabel(jst.getLabel());
for (int j = 0; j < jst.getColumns().length(); j++) {
JsColumn jsColumn = jst.getColumns().get(j);
Column c = new Column(jsColumn.getName(), database.getTypeByName(jsColumn
.getType()));
c.setLabel(jsColumn.getLabel());
if (jsColumn.getEditor() != null) {
c.setEditor(Editor.valueOf(jsColumn.getEditor()));
}
c.setStyleName(jsColumn.getStyleName());
t.add(c);
}
database.getMainSchema().add(t);
}
for (int i = 0; i < meta.getTables().length(); i++) {
JsTable jst = meta.getTables().get(i);
Table pkTable = database.getMainSchema().findTableOrView(
jst.getName());
JsArray<JsFk> fks = jst.getFks();
for (int j = 0; j < fks.length(); j++) {
JsFk jsfk = fks.get(j);
Table fkTable = database.getMainSchema().findTableOrView(
jsfk.getReferencedTableName());
ConstraintReferential fk = new ConstraintReferential(
jsfk.getName(), pkTable);
fk.setLabel(jsfk.getLabel());
fk.setRefTable(fkTable);
fk.setColumns(createColumns(pkTable, jsfk.getForeignKeyNames()));
fk.setRefColumns(createColumns(fkTable, jsfk.getReferencedKeyNames()));
pkTable.add(fk);
ConstraintReferential fkr = new ConstraintReferential(
jsfk.getName() + ".reverse", fkTable);
fkr.setLabel(jsfk.getReverseLabel());
fkr.setRefTable(pkTable);
fkr.setColumns(createColumns(fkTable, jsfk.getReferencedKeyNames())); // XXX
// already
// done
// this
fkr.setRefColumns(createColumns(pkTable, jsfk.getForeignKeyNames())); // XXX
// already
// done
// this
fkTable.add(fkr);
}
}
}