Search in sources :

Example 1 with Row

use of org.openforis.collect.relational.data.Row in project collect by openforis.

the class CodeTableDataExtractor method next.

@Override
public Row next() {
    Row row;
    if (isDefaultCodeRowToBeCreated()) {
        row = createDefaultCodeRow();
    } else {
        CodeListItem item = items.get(itemIndex);
        row = extractRow(item);
        itemIndex++;
    }
    count++;
    return row;
}
Also used : Row(org.openforis.collect.relational.data.Row) PersistedCodeListItem(org.openforis.idm.metamodel.PersistedCodeListItem) CodeListItem(org.openforis.idm.metamodel.CodeListItem)

Example 2 with Row

use of org.openforis.collect.relational.data.Row in project collect by openforis.

the class CodeTableDataExtractor method extractRow.

public Row extractRow(CodeListItem source) {
    Row row = new Row(table);
    List<Column<?>> columns = table.getColumns();
    for (int i = 0; i < columns.size(); i++) {
        Column<?> col = columns.get(i);
        Object val = extractValue(source, col);
        row.setValue(i, val);
    }
    return row;
}
Also used : CodeLabelColumn(org.openforis.collect.relational.model.CodeLabelColumn) CodeListDescriptionColumn(org.openforis.collect.relational.model.CodeListDescriptionColumn) CodeParentKeyColumn(org.openforis.collect.relational.model.CodeParentKeyColumn) CodePrimaryKeyColumn(org.openforis.collect.relational.model.CodePrimaryKeyColumn) Column(org.openforis.collect.relational.model.Column) CodeListCodeColumn(org.openforis.collect.relational.model.CodeListCodeColumn) Row(org.openforis.collect.relational.data.Row)

Example 3 with Row

use of org.openforis.collect.relational.data.Row 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;
}
Also used : CodeLabelColumn(org.openforis.collect.relational.model.CodeLabelColumn) CodeListDescriptionColumn(org.openforis.collect.relational.model.CodeListDescriptionColumn) CodeParentKeyColumn(org.openforis.collect.relational.model.CodeParentKeyColumn) CodePrimaryKeyColumn(org.openforis.collect.relational.model.CodePrimaryKeyColumn) Column(org.openforis.collect.relational.model.Column) CodeListCodeColumn(org.openforis.collect.relational.model.CodeListCodeColumn) CodeListCodeColumn(org.openforis.collect.relational.model.CodeListCodeColumn) Row(org.openforis.collect.relational.data.Row) CodePrimaryKeyColumn(org.openforis.collect.relational.model.CodePrimaryKeyColumn) CodeLabelColumn(org.openforis.collect.relational.model.CodeLabelColumn)

Example 4 with Row

use of org.openforis.collect.relational.data.Row in project collect by openforis.

the class DataTableDataExtractor method extractDataInternal.

private void extractDataInternal(DataTable table, Node<?> source, Dataset data) {
    // Extract data from this node
    Row row = extractRow(source);
    data.addRow(row);
    // Extract data from descendants
    for (DataTable childTable : table.getChildTables()) {
        Path path = childTable.getRelativePath();
        List<Node<?>> children = path.evaluate(source);
        for (Node<?> child : children) {
            extractDataInternal(childTable, child, data);
        }
    }
}
Also used : Path(org.openforis.idm.path.Path) DataTable(org.openforis.collect.relational.model.DataTable) Node(org.openforis.idm.model.Node) Row(org.openforis.collect.relational.data.Row)

Example 5 with Row

use of org.openforis.collect.relational.data.Row in project collect by openforis.

the class DataTableDataExtractor method next.

@Override
public Row next() {
    Node<?> source = nodes.get(nextIndex++);
    Row row = extractRow(source);
    return row;
}
Also used : Row(org.openforis.collect.relational.data.Row)

Aggregations

Row (org.openforis.collect.relational.data.Row)8 Column (org.openforis.collect.relational.model.Column)3 CodeLabelColumn (org.openforis.collect.relational.model.CodeLabelColumn)2 CodeListCodeColumn (org.openforis.collect.relational.model.CodeListCodeColumn)2 CodeListDescriptionColumn (org.openforis.collect.relational.model.CodeListDescriptionColumn)2 CodeParentKeyColumn (org.openforis.collect.relational.model.CodeParentKeyColumn)2 CodePrimaryKeyColumn (org.openforis.collect.relational.model.CodePrimaryKeyColumn)2 CodeValueFKColumn (org.openforis.collect.relational.model.CodeValueFKColumn)1 CoordinateLatLonColumn (org.openforis.collect.relational.model.CoordinateLatLonColumn)1 DataAncestorFKColumn (org.openforis.collect.relational.model.DataAncestorFKColumn)1 DataColumn (org.openforis.collect.relational.model.DataColumn)1 DataPrimaryKeyColumn (org.openforis.collect.relational.model.DataPrimaryKeyColumn)1 DataTable (org.openforis.collect.relational.model.DataTable)1 CodeListItem (org.openforis.idm.metamodel.CodeListItem)1 PersistedCodeListItem (org.openforis.idm.metamodel.PersistedCodeListItem)1 Node (org.openforis.idm.model.Node)1 Path (org.openforis.idm.path.Path)1