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);
}
}
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;
}
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;
}
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);
}
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);
}
Aggregations