Search in sources :

Example 56 with Schema

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

the class SpeciesService method isTaxonomyInUse.

@Secured("ROLE_ADMIN")
public boolean isTaxonomyInUse(String taxonomyName) {
    CollectSurvey survey = sessionManager.getActiveDesignerSurvey();
    Schema schema = survey.getSchema();
    List<TaxonAttributeDefinition> defns = schema.getTaxonAttributeDefinitions(taxonomyName);
    return !defns.isEmpty();
}
Also used : TaxonAttributeDefinition(org.openforis.idm.metamodel.TaxonAttributeDefinition) Schema(org.openforis.idm.metamodel.Schema) CollectSurvey(org.openforis.collect.model.CollectSurvey) Secured(org.springframework.security.access.annotation.Secured)

Example 57 with Schema

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

the class SurveyValidator method validateMultiplicityNotChanged.

protected List<SurveyValidationResult> validateMultiplicityNotChanged(CollectSurvey oldPublishedSurvey, CollectSurvey newSurvey) {
    final Schema oldSchema = oldPublishedSurvey.getSchema();
    SurveyValidationNodeDefinitionVisitor visitor = new SurveyValidationNodeDefinitionVisitor() {

        @Override
        public void visit(NodeDefinition nodeDefn) {
            NodeDefinition oldDefn = oldSchema.getDefinitionById(nodeDefn.getId());
            if (oldDefn != null && oldDefn.isMultiple() && !nodeDefn.isMultiple()) {
                String messageKey = "survey.validation.error.cardinality_changed_from_multiple_to_single";
                String path = nodeDefn.getPath();
                SurveyValidationResult result = new SurveyValidationResult(path, messageKey);
                addResult(result);
            }
        }
    };
    visitNodeDefinitions(newSurvey, visitor);
    return visitor.getResults();
}
Also used : Schema(org.openforis.idm.metamodel.Schema) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition)

Example 58 with Schema

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

the class SurveyValidator method validateDataTypeNotChanged.

protected List<SurveyValidationResult> validateDataTypeNotChanged(CollectSurvey oldPublishedSurvey, CollectSurvey newSurvey) {
    final Schema oldSchema = oldPublishedSurvey.getSchema();
    SurveyValidationNodeDefinitionVisitor visitor = new SurveyValidationNodeDefinitionVisitor() {

        @Override
        public void visit(NodeDefinition nodeDefn) {
            NodeDefinition oldDefn = oldSchema.getDefinitionById(nodeDefn.getId());
            if (oldDefn != null && (oldDefn.getClass() != nodeDefn.getClass() || oldDefn instanceof NumericAttributeDefinition && ((NumericAttributeDefinition) oldDefn).getType() != ((NumericAttributeDefinition) nodeDefn).getType())) {
                String messageKey = "survey.validation.error.data_type_changed";
                String path = nodeDefn.getPath();
                SurveyValidationResult result = new SurveyValidationResult(path, messageKey);
                addResult(result);
            }
        }
    };
    visitNodeDefinitions(newSurvey, visitor);
    return visitor.getResults();
}
Also used : Schema(org.openforis.idm.metamodel.Schema) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) NumericAttributeDefinition(org.openforis.idm.metamodel.NumericAttributeDefinition)

Example 59 with Schema

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

the class SurveyValidator method validateParentRelationship.

protected List<SurveyValidationResult> validateParentRelationship(CollectSurvey oldPublishedSurvey, CollectSurvey newSurvey) {
    final Schema oldSchema = oldPublishedSurvey.getSchema();
    SurveyValidationNodeDefinitionVisitor visitor = new SurveyValidationNodeDefinitionVisitor() {

        @Override
        public void visit(NodeDefinition nodeDefn) {
            NodeDefinition oldDefn = oldSchema.getDefinitionById(nodeDefn.getId());
            if (oldDefn != null) {
                NodeDefinition parentDefn = nodeDefn.getParentDefinition();
                NodeDefinition oldParentDefn = oldDefn.getParentDefinition();
                int parentDefnId = parentDefn == null ? -1 : parentDefn.getId();
                int oldParentDefnId = oldParentDefn == null ? -1 : oldParentDefn.getId();
                if (parentDefnId != oldParentDefnId) {
                    String messageKey = "survey.validation.error.parent_changed";
                    String path = nodeDefn.getPath();
                    SurveyValidationResult validationResult = new SurveyValidationResult(path, messageKey);
                    addResult(validationResult);
                }
            }
        }
    };
    visitNodeDefinitions(newSurvey, visitor);
    return visitor.getResults();
}
Also used : Schema(org.openforis.idm.metamodel.Schema) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition)

Example 60 with Schema

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

the class UIOptionsMigrator method verifyMigration.

private void verifyMigration(final UIConfiguration uiConfig) throws UIOptionsMigrationException {
    // 
    // StringWriter writer = new StringWriter();
    // UIConfigurationSerializer serializer = new UIConfigurationSerializer();
    // serializer.write(uiConfig, writer);
    // System.out.println(writer.toString());
    // 
    final CollectSurvey survey = uiConfig.getSurvey();
    Schema schema = survey.getSchema();
    schema.traverse(new NodeDefinitionVisitor() {

        @Override
        public void visit(NodeDefinition definition) {
            int nodeId = definition.getId();
            UIModelObject uiModelObj = uiConfig.getModelObjectByNodeDefinitionId(nodeId);
            if (uiModelObj == null) {
                throw new UIOptionsMigrationException(String.format("No UI model object found for node with id %d in %s survey with uri %s", nodeId, survey.isTemporary() ? "temporary" : "published", survey.getUri()));
            }
        }
    });
}
Also used : Schema(org.openforis.idm.metamodel.Schema) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) CollectSurvey(org.openforis.collect.model.CollectSurvey) 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