Search in sources :

Example 26 with Schema

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

the class CodeListManager method isInUse.

public boolean isInUse(final CodeList list) {
    Survey survey = list.getSurvey();
    Schema schema = survey.getSchema();
    NodeDefinition attrDefnUsingCodeList = schema.findNodeDefinition(new NodeDefinitionVerifier() {

        @Override
        public boolean verify(NodeDefinition definition) {
            return definition instanceof CodeAttributeDefinition && ((CodeAttributeDefinition) definition).getList() == list;
        }
    });
    return attrDefnUsingCodeList != null;
}
Also used : Survey(org.openforis.idm.metamodel.Survey) CollectSurvey(org.openforis.collect.model.CollectSurvey) CodeAttributeDefinition(org.openforis.idm.metamodel.CodeAttributeDefinition) Schema(org.openforis.idm.metamodel.Schema) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) NodeDefinitionVerifier(org.openforis.idm.metamodel.NodeDefinitionVerifier)

Example 27 with Schema

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

the class RecordValidationProcess method startProcessing.

@Override
@Transactional(propagation = Propagation.SUPPORTS)
public void startProcessing() throws Exception {
    super.startProcessing();
    validateParameters();
    status.setTotal(recordManager.countRecords(new RecordFilter(survey)));
    Schema schema = survey.getSchema();
    List<EntityDefinition> rootEntities = schema.getRootEntityDefinitions();
    for (EntityDefinition rootEntityDef : rootEntities) {
        RecordFilter filter = new RecordFilter(survey, rootEntityDef.getId());
        List<CollectRecordSummary> summaries = recordManager.loadSummaries(filter);
        for (CollectRecordSummary summary : summaries) {
            // print(outputStream, "Start validating record: " + recordKey);
            if (status.isRunning()) {
                Step step = summary.getStep();
                Integer recordId = summary.getId();
                recordManager.validateAndSave(survey, user, sessionId, recordId, step);
                status.incrementProcessed();
            // long elapsedMillis = System.currentTimeMillis() - start;
            // print(outputStream, "Validation of record " + recordKey + " completed in " + elapsedMillis + " millis");
            }
        }
    }
    if (status.isRunning()) {
        status.complete();
    }
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Schema(org.openforis.idm.metamodel.Schema) CollectRecordSummary(org.openforis.collect.model.CollectRecordSummary) Step(org.openforis.collect.model.CollectRecord.Step) RecordFilter(org.openforis.collect.model.RecordFilter) Transactional(org.springframework.transaction.annotation.Transactional)

Example 28 with Schema

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

the class SurveyValidator method visitNodeDefinitions.

protected void visitNodeDefinitions(CollectSurvey survey, NodeDefinitionVisitor nodeDefnVisitor) {
    Schema schema = survey.getSchema();
    List<EntityDefinition> rootEntityDefns = schema.getRootEntityDefinitions();
    for (EntityDefinition entityDefn : rootEntityDefns) {
        entityDefn.traverse(nodeDefnVisitor);
    }
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Schema(org.openforis.idm.metamodel.Schema)

Example 29 with Schema

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

the class SurveyValidator method validateRootKeyAttributeSpecified.

private List<SurveyValidationResult> validateRootKeyAttributeSpecified(CollectSurvey survey) {
    List<SurveyValidationResult> results = new ArrayList<SurveyValidationResult>();
    Schema schema = survey.getSchema();
    for (EntityDefinition rootEntityDef : schema.getRootEntityDefinitions()) {
        List<AttributeDefinition> keyAttributeDefinitions = rootEntityDef.getKeyAttributeDefinitions();
        if (keyAttributeDefinitions.isEmpty()) {
            SurveyValidationResult validationResult = new SurveyValidationResult(rootEntityDef.getPath(), "survey.validation.error.key_attribute_not_specified");
            results.add(validationResult);
        } else if (keyAttributeDefinitions.size() > MAX_KEY_ATTRIBUTE_DEFINITION_COUNT) {
            SurveyValidationResult validationResult = new SurveyValidationResult(rootEntityDef.getPath(), "survey.validation.error.maximum_key_attribute_definitions_exceeded");
            results.add(validationResult);
        }
    }
    return results;
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Schema(org.openforis.idm.metamodel.Schema) ArrayList(java.util.ArrayList) NumericAttributeDefinition(org.openforis.idm.metamodel.NumericAttributeDefinition) KeyAttributeDefinition(org.openforis.idm.metamodel.KeyAttributeDefinition) AttributeDefinition(org.openforis.idm.metamodel.AttributeDefinition) CodeAttributeDefinition(org.openforis.idm.metamodel.CodeAttributeDefinition) TaxonAttributeDefinition(org.openforis.idm.metamodel.TaxonAttributeDefinition)

Example 30 with Schema

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

the class SurveyValidator method validateSchemaNodes.

/**
 * Checks for the existence of empty entities
 *
 * @param survey
 * @return
 */
protected List<SurveyValidationResult> validateSchemaNodes(CollectSurvey survey) {
    final List<SurveyValidationResult> results = new ArrayList<SurveyValidationResult>();
    Schema schema = survey.getSchema();
    schema.traverse(new NodeDefinitionVisitor() {

        @Override
        public void visit(NodeDefinition def) {
            results.addAll(validateSchemaNode(def));
        }
    });
    return results;
}
Also used : Schema(org.openforis.idm.metamodel.Schema) ArrayList(java.util.ArrayList) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) NodeDefinitionVisitor(org.openforis.idm.metamodel.NodeDefinitionVisitor)

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