Map keyChildren = groupChildrenByName(keyNode);
if (fc.parseORM()) {
//<!ATTLIST key column CDATA #IMPLIED>
Node n = keyNode.getAttributes().getNamedItem("column");
if (n != null) {
SpeedoColumn col = new SpeedoColumn(n.getNodeValue());
//in the same table than map value
if (fc.field.columns != null && fc.field.columns.length > 0) {
col.table = fc.field.columns[0].table;
}
m.keyColumns = col;
}
l = (List) keyChildren.get("column");
if (l != null) {
m.keyColumns = getColumn((Node) l.get(0));
}
fc.parseTableAttribute(keyNode, logger);
}
unmanaged(
new String[]{"serialized", "delete-action", "indexed", "unique"},
new String[]{"embedded", "foreign-key", "unique", "index"},
keyNode, keyChildren);
}
l = (List) fc.fieldChildren.get("value");
if (l != null) {
//<!ELEMENT value (extension*, embedded?, column*, foreign-key?, index?, unique?, extension*)>
//<!ATTLIST value serialized (true|false) #IMPLIED>
//<!ATTLIST value table CDATA #IMPLIED>
//<!ATTLIST value delete-action (restrict|cascade|null|default|none) #IMPLIED>
//<!ATTLIST value indexed (true|false|unique) #IMPLIED>
//<!ATTLIST value unique (true|false) #IMPLIED>
Node valueNode = (Node) l.get(0);
Map valueChildren = groupChildrenByName(valueNode);
if (fc.parseORM()) {
//<!ATTLIST value column CDATA #IMPLIED>
Node n = valueNode.getAttributes().getNamedItem("column");
if (n != null) {
fc.addColumn(new SpeedoColumn(n.getNodeValue()));
}
l = (List) valueChildren.get("column");
if (l != null) {
for (int i = 0; i < l.size(); i++) {
fc.addColumn(getColumn((Node) l.get(i)));