use of org.openforis.collect.relational.model.CodeListCodeColumn in project collect by openforis.
the class CodeTableDataExtractor method createDefaultCodeRow.
protected Row createDefaultCodeRow() {
Row row = new Row(table);
List<Column<?>> columns = table.getColumns();
for (int i = 0; i < columns.size(); i++) {
@SuppressWarnings("rawtypes") Column col = columns.get(i);
Object val;
if (col instanceof CodePrimaryKeyColumn) {
val = DEFAULT_CODE_ROW_ID;
} else if (col instanceof CodeListCodeColumn) {
val = table.getDefaultCode();
} else if (col instanceof CodeLabelColumn) {
val = table.getDefaultCodeLabel(((CodeLabelColumn) col).getLanguageCode());
} else {
val = null;
}
row.setValue(i, val);
}
return row;
}
use of org.openforis.collect.relational.model.CodeListCodeColumn in project collect by openforis.
the class JooqRelationalSchemaCreator method addCodeListsCodeIndexes.
private void addCodeListsCodeIndexes(RelationalSchema schema, CollectDSLContext dsl) {
for (Table<?> table : schema.getTables()) {
if (table instanceof CodeTable) {
CodeTable codeTable = (CodeTable) table;
org.jooq.Table<Record> jooqTable = jooqTable(schema, table, !dsl.isSchemaLess());
CodeListCodeColumn codeColumn = codeTable.getCodeColumn();
CollectCreateIndexStep createIndexStep = dsl.createIndex(table.getName() + "_code_idx");
if (codeTable.getLevelIdx() == null || codeTable.getLevelIdx() == 0) {
// unique index only for first level or when the code scope is 'scheme'
createIndexStep.unique();
}
createIndexStep.on(jooqTable, field(codeColumn.getName())).execute();
}
}
}
Aggregations