Search in sources :

Example 31 with Schema

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

the class UIModelObject method getNodeDefinition.

protected NodeDefinition getNodeDefinition(int id) {
    UIConfiguration uiConfiguration = getUIConfiguration();
    if (uiConfiguration == null || uiConfiguration.getSurvey() == null) {
        throw new IllegalStateException("UIConfiguration not initialized correctly");
    }
    CollectSurvey survey = uiConfiguration.getSurvey();
    Schema schema = survey.getSchema();
    NodeDefinition result = schema.getDefinitionById(id);
    return result;
}
Also used : Schema(org.openforis.idm.metamodel.Schema) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) CollectSurvey(org.openforis.collect.model.CollectSurvey)

Example 32 with Schema

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

the class UIOptions method getRootEntityDefinition.

public EntityDefinition getRootEntityDefinition(UITabSet tabSet) {
    Schema schema = survey.getSchema();
    List<EntityDefinition> rootEntityDefinitions = schema.getRootEntityDefinitions();
    for (EntityDefinition defn : rootEntityDefinitions) {
        UITabSet entityTabSet = getAssignedRootTabSet(defn);
        if (entityTabSet != null && entityTabSet.equals(tabSet)) {
            return defn;
        }
    }
    return null;
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Schema(org.openforis.idm.metamodel.Schema)

Example 33 with Schema

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

the class UIOptionsMigrator method findAssociatedRootEntity.

protected EntityDefinition findAssociatedRootEntity(UITabSet tabSet) {
    UIOptions uiOptions = tabSet.getUIOptions();
    CollectSurvey survey = uiOptions.getSurvey();
    Schema schema = survey.getSchema();
    List<EntityDefinition> rootEntityDefinitions = schema.getRootEntityDefinitions();
    for (EntityDefinition rootEntityDefn : rootEntityDefinitions) {
        UITabSet assignedRootTabSet = uiOptions.getAssignedRootTabSet(rootEntityDefn);
        if (ObjectUtils.equals(assignedRootTabSet, tabSet)) {
            return rootEntityDefn;
        }
    }
    return null;
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Schema(org.openforis.idm.metamodel.Schema) CollectSurvey(org.openforis.collect.model.CollectSurvey)

Example 34 with Schema

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

the class CSVDataExportProcess method getEntitiesToExport.

private Collection<EntityDefinition> getEntitiesToExport() {
    final Collection<EntityDefinition> result = new ArrayList<EntityDefinition>();
    Schema schema = recordFilter.getSurvey().getSchema();
    if (entityId == null) {
        EntityDefinition rootEntity = schema.getRootEntityDefinition(recordFilter.getRootEntityId());
        rootEntity.traverse(new NodeDefinitionVisitor() {

            @Override
            public void visit(NodeDefinition node) {
                if (node instanceof EntityDefinition && node.isMultiple()) {
                    result.add((EntityDefinition) node);
                }
            }
        });
    } else {
        EntityDefinition entity = (EntityDefinition) schema.getDefinitionById(entityId);
        result.add(entity);
    }
    return result;
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Schema(org.openforis.idm.metamodel.Schema) ArrayList(java.util.ArrayList) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) NodeDefinitionVisitor(org.openforis.idm.metamodel.NodeDefinitionVisitor)

Example 35 with Schema

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

the class CSVDataImportProcess method setValuesInAttributes.

private void setValuesInAttributes(Entity ancestorEntity, Map<FieldValueKey, String> fieldValues, Map<FieldValueKey, String> colNameByField, long row) {
    Set<Entry<FieldValueKey, String>> entrySet = fieldValues.entrySet();
    // delete all multiple attributes
    for (Entry<FieldValueKey, String> entry : entrySet) {
        FieldValueKey fieldValueKey = entry.getKey();
        EntityDefinition ancestorDefn = ancestorEntity.getDefinition();
        Schema schema = ancestorDefn.getSchema();
        AttributeDefinition attrDefn = (AttributeDefinition) schema.getDefinitionById(fieldValueKey.getAttributeDefinitionId());
        Entity parentEntity = getOrCreateParentEntity(ancestorEntity, attrDefn);
        if (attrDefn.isMultiple()) {
            List<Node<?>> attributes = parentEntity.getChildren(attrDefn);
            int tot = attributes.size();
            for (int i = 0; i < tot; i++) {
                Node<?> node = attributes.get(0);
                NodeChangeSet changes = recordUpdater.deleteNode(node);
                if (nodeChangeBatchProcessor != null) {
                    nodeChangeBatchProcessor.add(changes, adminUser.getUsername());
                }
            }
        }
    }
    // set values
    for (Entry<FieldValueKey, String> entry : entrySet) {
        FieldValueKey fieldValueKey = entry.getKey();
        String strValue = entry.getValue();
        EntityDefinition ancestorDefn = ancestorEntity.getDefinition();
        Schema schema = ancestorDefn.getSchema();
        AttributeDefinition attrDefn = (AttributeDefinition) schema.getDefinitionById(fieldValueKey.getAttributeDefinitionId());
        String fieldName = fieldValueKey.getFieldName();
        Entity parentEntity = getOrCreateParentEntity(ancestorEntity, attrDefn);
        String colName = colNameByField.get(fieldValueKey);
        int attrPos = fieldValueKey.getAttributePosition();
        setValueInField(parentEntity, attrDefn, attrPos - 1, fieldName, strValue, colName, row);
    }
}
Also used : Entity(org.openforis.idm.model.Entity) NodeChangeSet(org.openforis.collect.model.NodeChangeSet) FieldValueKey(org.openforis.collect.io.data.DataLine.FieldValueKey) Schema(org.openforis.idm.metamodel.Schema) Node(org.openforis.idm.model.Node) NumericAttributeDefinition(org.openforis.idm.metamodel.NumericAttributeDefinition) CoordinateAttributeDefinition(org.openforis.idm.metamodel.CoordinateAttributeDefinition) AttributeDefinition(org.openforis.idm.metamodel.AttributeDefinition) NumberAttributeDefinition(org.openforis.idm.metamodel.NumberAttributeDefinition) EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Entry(java.util.Map.Entry)

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