// gather columns and result arguments
FieldMapping[] fms = vm.getEmbeddedMapping().getFieldMappings();
Column[] curCols;
Object[] curArgs;
ColumnIO curIO;
for (int i = 0; i < fms.length; i++) {
if (fms[i].getManagement() != FieldMapping.MANAGE_PERSISTENT)
continue;
if (!(fms[i].getStrategy() instanceof Embeddable))
throw new MetaDataException(_loc.get("not-embeddable",
vm, fms[i]));
curCols = ((Embeddable) fms[i].getStrategy()).getColumns();
curIO = ((Embeddable) fms[i].getStrategy()).getColumnIO();
for (int j = 0; j < curCols.length; j++) {
io.setInsertable(cols.size(), curIO.isInsertable(j, false));
io.setNullInsertable(cols.size(),
curIO.isInsertable(j, true));
io.setUpdatable(cols.size(), curIO.isUpdatable(j, false));
io.setNullUpdatable(cols.size(), curIO.isUpdatable(j, true));
cols.add(curCols[j]);
}
curArgs = ((Embeddable) fms[i].getStrategy()).getResultArguments();
if (curCols.length == 1)