Search in sources :

Example 81 with Entity

use of org.openforis.idm.model.Entity in project collect by openforis.

the class AttributeUpdateRequestProxy method toAttributeUpdateRequest.

@Override
@SuppressWarnings("unchecked")
public AttributeUpdateRequest<?> toAttributeUpdateRequest(CodeListManager codeListManager, RecordSessionManager sessionManager, CollectRecord record) {
    AttributeUpdateRequest<Value> opts = new NodeUpdateRequest.AttributeUpdateRequest<Value>();
    Attribute<?, ?> attribute = (Attribute<?, ?>) record.getNodeByInternalId(nodeId);
    opts.setAttribute((Attribute<?, Value>) attribute);
    Value parsedValue;
    if (attribute instanceof FileAttribute) {
        parsedValue = parseFileAttributeValue(sessionManager, record, nodeId, value);
    } else if (value == null) {
        parsedValue = null;
    } else {
        Entity parentEntity = attribute.getParent();
        String attributeName = attribute.getName();
        parsedValue = parseCompositeAttributeValue(codeListManager, parentEntity, attributeName, value);
    }
    opts.setValue(parsedValue);
    opts.setSymbol(symbol);
    return opts;
}
Also used : Entity(org.openforis.idm.model.Entity) AttributeUpdateRequest(org.openforis.collect.remoting.service.NodeUpdateRequest.AttributeUpdateRequest) Attribute(org.openforis.idm.model.Attribute) FileAttribute(org.openforis.idm.model.FileAttribute) Value(org.openforis.idm.model.Value) FileAttribute(org.openforis.idm.model.FileAttribute)

Example 82 with Entity

use of org.openforis.idm.model.Entity in project collect by openforis.

the class EntityAddRequestProxy method toNodeUpdateRequest.

@Override
public EntityAddRequest toNodeUpdateRequest(CollectRecord record) {
    EntityAddRequest opts = new NodeUpdateRequest.EntityAddRequest();
    Entity parentEntity = (Entity) record.getNodeByInternalId(parentEntityId);
    opts.setParentEntity(parentEntity);
    opts.setNodeName(nodeName);
    return opts;
}
Also used : Entity(org.openforis.idm.model.Entity) EntityAddRequest(org.openforis.collect.remoting.service.NodeUpdateRequest.EntityAddRequest)

Example 83 with Entity

use of org.openforis.idm.model.Entity in project collect by openforis.

the class AttributeAddRequestProxy method toAttributeUpdateRequest.

@Override
public AttributeAddRequest<?> toAttributeUpdateRequest(CodeListManager codeListManager, RecordSessionManager sessionManager, CollectRecord record) {
    Entity parentEntity = (Entity) record.getNodeByInternalId(parentEntityId);
    AttributeAddRequest<Value> result = new NodeUpdateRequest.AttributeAddRequest<Value>();
    result.setParentEntity(parentEntity);
    result.setNodeName(nodeName);
    result.setRemarks(remarks);
    result.setSymbol(symbol);
    if (value != null) {
        Value parsedValue = parseCompositeAttributeValue(codeListManager, parentEntity, nodeName, value);
        result.setValue(parsedValue);
    }
    return result;
}
Also used : AttributeAddRequest(org.openforis.collect.remoting.service.NodeUpdateRequest.AttributeAddRequest) Entity(org.openforis.idm.model.Entity) Value(org.openforis.idm.model.Value)

Example 84 with Entity

use of org.openforis.idm.model.Entity 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)

Example 85 with Entity

use of org.openforis.idm.model.Entity in project collect by openforis.

the class CSVDataImportProcess method createChildEntity.

private Entity createChildEntity(Entity currentParent, String childName, EntityIdentifier<?> identifier, Map<FieldValueKey, String> colNamesByField, long row) {
    if (identifier instanceof EntityPositionIdentifier) {
        int position = ((EntityPositionIdentifier) identifier).getPosition();
        if (position == currentParent.getCount(childName) + 1) {
            Entity entity = (Entity) performNodeAdd(currentParent, childName);
            return entity;
        } else {
            throw new IllegalArgumentException(String.format("Trying to create child in a invalid position: row=%d path=%s[%d]", row, currentParent.getPath() + "/" + childName, position));
        }
    } else {
        Entity entity = (Entity) performNodeAdd(currentParent, childName);
        Value[] keyValues = ((EntityKeysIdentifier) identifier).getKeyValues();
        setKeyValues(entity, keyValues, colNamesByField, row);
        return entity;
    }
}
Also used : EntityPositionIdentifier(org.openforis.collect.io.data.DataLine.EntityPositionIdentifier) Entity(org.openforis.idm.model.Entity) EntityKeysIdentifier(org.openforis.collect.io.data.DataLine.EntityKeysIdentifier) AbstractValue(org.openforis.idm.model.AbstractValue) Value(org.openforis.idm.model.Value)

Aggregations

Entity (org.openforis.idm.model.Entity)164 Test (org.junit.Test)88 CollectRecord (org.openforis.collect.model.CollectRecord)37 EntityDefinition (org.openforis.idm.metamodel.EntityDefinition)36 Code (org.openforis.idm.model.Code)35 RealAttribute (org.openforis.idm.model.RealAttribute)25 CollectIntegrationTest (org.openforis.collect.CollectIntegrationTest)23 NodeDefinition (org.openforis.idm.metamodel.NodeDefinition)19 Node (org.openforis.idm.model.Node)19 AbstractTest (org.openforis.idm.AbstractTest)18 Date (org.openforis.idm.model.Date)16 ArrayList (java.util.ArrayList)14 CodeAttribute (org.openforis.idm.model.CodeAttribute)14 Time (org.openforis.idm.model.Time)12 GregorianCalendar (java.util.GregorianCalendar)9 ParsingError (org.openforis.collect.io.metadata.parsing.ParsingError)9 AttributeDefinition (org.openforis.idm.metamodel.AttributeDefinition)9 TextAttribute (org.openforis.idm.model.TextAttribute)9 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)8 Attribute (org.openforis.idm.model.Attribute)8