Search in sources :

Example 6 with Schema

use of org.openforis.idm.metamodel.Schema in project collect by openforis.

the class RecordIndexService method search.

public List<String> search(SearchType searchType, Survey survey, int attributeDefnId, int fieldIndex, String queryText, int maxResults) throws RecordIndexException {
    Schema schema = survey.getSchema();
    AttributeDefinition defn = (AttributeDefinition) schema.getDefinitionById(attributeDefnId);
    String indexName = defn.getAnnotation(Annotation.AUTOCOMPLETE.getQName());
    if (StringUtils.isNotBlank(indexName)) {
        try {
            // search in ram directory
            List<String> tempResult = volatileIndexManager.search(searchType, survey, attributeDefnId, fieldIndex, queryText, maxResults);
            // search in file system index
            List<String> committedResult = persistedIndexManager.search(searchType, survey, attributeDefnId, fieldIndex, queryText, maxResults);
            List<String> result = mergeSearchResults(maxResults, tempResult, committedResult);
            return result;
        } catch (Exception e) {
            throw new RecordIndexException(e);
        }
    } else {
        throw new RecordIndexException("Index name is not defined for attribute with id: " + attributeDefnId);
    }
}
Also used : Schema(org.openforis.idm.metamodel.Schema) AttributeDefinition(org.openforis.idm.metamodel.AttributeDefinition) RecordIndexException(org.openforis.collect.manager.RecordIndexException) RecordIndexException(org.openforis.collect.manager.RecordIndexException)

Example 7 with Schema

use of org.openforis.idm.metamodel.Schema in project collect by openforis.

the class CSVDataImportProcess method createParentEntitySearchError.

private ParsingError createParentEntitySearchError(CollectRecord record, DataLine line, EntityIdentifier<?> identifier, String messageKey) {
    EntityIdentifierDefinition identifierDefn = identifier.getDefinition();
    Survey survey = record.getSurvey();
    Schema schema = survey.getSchema();
    EntityDefinition parentEntityDefn = (EntityDefinition) schema.getDefinitionById(identifierDefn.getEntityDefinitionId());
    String[] colNames = DataCSVReader.getKeyAttributeColumnNames(parentEntityDefn, parentEntityDefn.getKeyAttributeDefinitions());
    ParsingError error = new ParsingError(ErrorType.INVALID_VALUE, line.getLineNumber(), colNames, messageKey);
    List<String> recordKeys = record.getRootEntityKeyValues();
    CollectionUtils.filter(recordKeys, new Predicate() {

        @Override
        public boolean evaluate(Object object) {
            return StringUtils.isNotBlank((String) object);
        }
    });
    String jointRecordKeys = StringUtils.join(recordKeys, ", ");
    String jointParentEntityKeys = identifier instanceof EntityPositionIdentifier ? "[" + ((EntityPositionIdentifier) identifier).getPosition() + "]" : StringUtils.join(((EntityKeysIdentifier) identifier).getKeyValues(), ", ");
    error.setMessageArgs(new String[] { parentEntityDefn.getName(), jointParentEntityKeys, jointRecordKeys });
    return error;
}
Also used : EntityPositionIdentifier(org.openforis.collect.io.data.DataLine.EntityPositionIdentifier) EntityKeysIdentifier(org.openforis.collect.io.data.DataLine.EntityKeysIdentifier) Schema(org.openforis.idm.metamodel.Schema) Predicate(org.apache.commons.collections.Predicate) EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) CollectSurvey(org.openforis.collect.model.CollectSurvey) Survey(org.openforis.idm.metamodel.Survey) ParsingError(org.openforis.collect.io.metadata.parsing.ParsingError) EntityIdentifierDefinition(org.openforis.collect.io.data.DataLine.EntityIdentifierDefinition)

Example 8 with Schema

use of org.openforis.idm.metamodel.Schema in project collect by openforis.

the class DataCSVReader method getExpectedAncestorKeyColumnNames.

private List<String> getExpectedAncestorKeyColumnNames() {
    List<EntityIdentifierDefinition> entityIdentifierDefns = getAncestorIdentifiers();
    // validate ancestor key columns
    Schema schema = parentEntityDefinition.getSchema();
    List<String> expectedEntityKeyColumns = new ArrayList<String>();
    for (EntityIdentifierDefinition identifier : entityIdentifierDefns) {
        int defnId = identifier.getEntityDefinitionId();
        EntityDefinition defn = (EntityDefinition) schema.getDefinitionById(defnId);
        if (identifier instanceof EntityPositionIdentifierDefinition) {
            String expectedColName = getPositionColumnName(defn);
            expectedEntityKeyColumns.add(expectedColName);
        } else if (identifier instanceof SingleEntityIdentifierDefinition) {
        // skip
        } else {
            List<AttributeDefinition> keyDefns = defn.getKeyAttributeDefinitions();
            for (AttributeDefinition keyDefn : keyDefns) {
                List<String> expectedColNames = getKeyAttributeColumnNames(parentEntityDefinition, keyDefn);
                expectedEntityKeyColumns.addAll(expectedColNames);
            }
        }
    }
    return expectedEntityKeyColumns;
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) SingleEntityIdentifierDefinition(org.openforis.collect.io.data.DataLine.SingleEntityIdentifierDefinition) Schema(org.openforis.idm.metamodel.Schema) ArrayList(java.util.ArrayList) EntityPositionIdentifierDefinition(org.openforis.collect.io.data.DataLine.EntityPositionIdentifierDefinition) AttributeDefinition(org.openforis.idm.metamodel.AttributeDefinition) ArrayList(java.util.ArrayList) List(java.util.List) SingleEntityIdentifierDefinition(org.openforis.collect.io.data.DataLine.SingleEntityIdentifierDefinition) EntityIdentifierDefinition(org.openforis.collect.io.data.DataLine.EntityIdentifierDefinition)

Example 9 with Schema

use of org.openforis.idm.metamodel.Schema in project collect by openforis.

the class CSVDataExportColumnProviderGenerator method generateDataTransformation.

public DataTransformation generateDataTransformation(int entityDefId) throws InvalidExpressionException {
    Schema schema = survey.getSchema();
    EntityDefinition entityDefn = (EntityDefinition) schema.getDefinitionById(entityDefId);
    ColumnProvider provider = generateColumnProviderChain(entityDefn);
    String axisPath = entityDefn.getPath();
    return new DataTransformation(axisPath, provider);
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Schema(org.openforis.idm.metamodel.Schema) DataTransformation(org.openforis.collect.io.data.csv.DataTransformation) PivotExpressionColumnProvider(org.openforis.collect.io.data.csv.PivotExpressionColumnProvider) AutomaticColumnProvider(org.openforis.collect.io.data.csv.AutomaticColumnProvider) ColumnProvider(org.openforis.collect.io.data.csv.ColumnProvider) NodePositionColumnProvider(org.openforis.collect.io.data.csv.NodePositionColumnProvider)

Example 10 with Schema

use of org.openforis.idm.metamodel.Schema in project collect by openforis.

the class SchemaXS method marshalInstances.

@Override
protected void marshalInstances(Survey survey) throws IOException {
    Schema schema = survey.getSchema();
    marshal(schema);
}
Also used : Schema(org.openforis.idm.metamodel.Schema)

Aggregations

Schema (org.openforis.idm.metamodel.Schema)65 EntityDefinition (org.openforis.idm.metamodel.EntityDefinition)46 NodeDefinition (org.openforis.idm.metamodel.NodeDefinition)23 CollectSurvey (org.openforis.collect.model.CollectSurvey)19 ArrayList (java.util.ArrayList)10 AttributeDefinition (org.openforis.idm.metamodel.AttributeDefinition)10 Survey (org.openforis.idm.metamodel.Survey)10 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)6 UIOptions (org.openforis.collect.metamodel.ui.UIOptions)5 NumericAttributeDefinition (org.openforis.idm.metamodel.NumericAttributeDefinition)5 Test (org.junit.Test)4 UITab (org.openforis.collect.metamodel.ui.UITab)4 UITabSet (org.openforis.collect.metamodel.ui.UITabSet)4 Step (org.openforis.collect.model.CollectRecord.Step)4 CollectRecordSummary (org.openforis.collect.model.CollectRecordSummary)4 RecordFilter (org.openforis.collect.model.RecordFilter)4 NodeDefinitionVisitor (org.openforis.idm.metamodel.NodeDefinitionVisitor)4 NumberAttributeDefinition (org.openforis.idm.metamodel.NumberAttributeDefinition)4 Entity (org.openforis.idm.model.Entity)4 List (java.util.List)3