Search in sources :

Example 1 with Record

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

the class CollectValidator method isRootEntityKey.

private boolean isRootEntityKey(Attribute<?, ?> attribute) {
    AttributeDefinition attrDef = attribute.getDefinition();
    if (attrDef.isKey()) {
        Record record = attribute.getRecord();
        Entity rootEntity = record.getRootEntity();
        EntityDefinition rootEntityDef = rootEntity.getDefinition();
        List<AttributeDefinition> keyAttributeDefs = rootEntityDef.getKeyAttributeDefinitions();
        for (AttributeDefinition keyDef : keyAttributeDefs) {
            if (keyDef.getId() == attrDef.getId()) {
                return true;
            }
        }
    }
    return false;
}
Also used : Entity(org.openforis.idm.model.Entity) EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) AttributeDefinition(org.openforis.idm.metamodel.AttributeDefinition) Record(org.openforis.idm.model.Record) CollectRecord(org.openforis.collect.model.CollectRecord)

Example 2 with Record

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

the class CodeValueFKColumnValueExtractor method extractValue.

private Object extractValue(CodeAttribute valNode) {
    CodeListItem item = findCodeListItem(valNode);
    if (item == null) {
        String defaultCodeValue = column.getDefaultCodeValue();
        String codeValue = getCodeValue(valNode);
        if (defaultCodeValue == null || (codeValue != null && !codeValue.equals(defaultCodeValue))) {
            // no default code value specified or code list item not found (invalid code?)
            return null;
        } else {
            CodeAttributeDefinition definition = valNode.getDefinition();
            CodeList list = definition.getList();
            Record record = valNode.getRecord();
            ModelVersion version = record.getVersion();
            return getDefaultCodeItemId(list, version);
        }
    } else {
        return item.getId();
    }
}
Also used : CodeList(org.openforis.idm.metamodel.CodeList) CodeAttributeDefinition(org.openforis.idm.metamodel.CodeAttributeDefinition) Record(org.openforis.idm.model.Record) ModelVersion(org.openforis.idm.metamodel.ModelVersion) CodeListItem(org.openforis.idm.metamodel.CodeListItem)

Example 3 with Record

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

the class TestFixture method survey.

public static TestFixture survey(NodeDefinitionBuilder.EntityDefinitionBuilder entityDefinitionBuilder, RecordBuilder... recordBuilders) {
    SurveyContext surveyContext = new TestSurveyContext();
    Survey survey = surveyContext.createSurvey();
    EntityDefinition rootEntityDef = (EntityDefinition) entityDefinitionBuilder.buildInternal(survey);
    survey.getSchema().addRootEntityDefinition(rootEntityDef);
    survey.refreshSurveyDependencies();
    List<Record> records = new ArrayList<Record>();
    for (RecordBuilder recordBuilder : recordBuilders) {
        Record record = recordBuilder.build(survey);
        records.add(record);
    }
    return new TestFixture(survey, Collections.unmodifiableList(records));
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Survey(org.openforis.idm.metamodel.Survey) TestSurveyContext(org.openforis.idm.model.TestSurveyContext) ArrayList(java.util.ArrayList) Record(org.openforis.idm.model.Record) SurveyContext(org.openforis.idm.metamodel.SurveyContext) TestSurveyContext(org.openforis.idm.model.TestSurveyContext)

Example 4 with Record

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

the class AbstractTest method createCluster.

@Before
public void createCluster() {
    this.record = new Record(survey, "2.0", "cluster");
    this.cluster = record.getRootEntity();
    Record record2 = new Record(survey, "2.0", "household");
    this.household = record2.getRootEntity();
}
Also used : Record(org.openforis.idm.model.Record) Before(org.junit.Before)

Example 5 with Record

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

the class CodeListManager method loadParentItem.

protected CodeListItem loadParentItem(CodeAttribute attribute) {
    CodeList list = attribute.getDefinition().getList();
    boolean persistedSurvey = list.getSurvey().getId() != null;
    Record record = attribute.getRecord();
    ModelVersion version = record.getVersion();
    if (persistedSurvey && list.isExternal()) {
        ExternalCodeListItem item = (ExternalCodeListItem) loadItemByAttribute(attribute);
        return provider.getParentItem(item);
    } else if (persistedSurvey && list.isEmpty()) {
        PersistedCodeListItem lastParentItem = null;
        List<CodeAttribute> codeAncestors = attribute.getCodeAncestors();
        for (int i = 0; i < codeAncestors.size(); i++) {
            CodeAttribute ancestor = codeAncestors.get(i);
            Integer lastParentItemId = lastParentItem == null ? null : lastParentItem.getSystemId();
            Code code = ancestor.getValue();
            lastParentItem = codeListItemDao.loadItem(list, lastParentItemId, code.getCode(), version);
            if (lastParentItem == null) {
                break;
            }
        }
        return lastParentItem;
    } else {
        CodeAttribute codeParent = attribute.getCodeParent();
        if (codeParent == null) {
            return null;
        } else {
            return loadItemByAttribute(codeParent);
        }
    }
}
Also used : CodeList(org.openforis.idm.metamodel.CodeList) ExternalCodeListItem(org.openforis.idm.metamodel.ExternalCodeListItem) CodeAttribute(org.openforis.idm.model.CodeAttribute) Record(org.openforis.idm.model.Record) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) CodeList(org.openforis.idm.metamodel.CodeList) List(java.util.List) ModelVersion(org.openforis.idm.metamodel.ModelVersion) Code(org.openforis.idm.model.Code) PersistedCodeListItem(org.openforis.idm.metamodel.PersistedCodeListItem)

Aggregations

Record (org.openforis.idm.model.Record)22 ModelVersion (org.openforis.idm.metamodel.ModelVersion)9 CodeAttribute (org.openforis.idm.model.CodeAttribute)7 ArrayList (java.util.ArrayList)5 CodeList (org.openforis.idm.metamodel.CodeList)5 CodeListItem (org.openforis.idm.metamodel.CodeListItem)5 EntityDefinition (org.openforis.idm.metamodel.EntityDefinition)5 Entity (org.openforis.idm.model.Entity)5 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)4 ExternalCodeListItem (org.openforis.idm.metamodel.ExternalCodeListItem)4 PersistedCodeListItem (org.openforis.idm.metamodel.PersistedCodeListItem)4 SurveyContext (org.openforis.idm.metamodel.SurveyContext)4 Attribute (org.openforis.idm.model.Attribute)4 BooleanAttribute (org.openforis.idm.model.BooleanAttribute)4 Node (org.openforis.idm.model.Node)4 HashSet (java.util.HashSet)3 LinkedHashSet (java.util.LinkedHashSet)3 CollectRecord (org.openforis.collect.model.CollectRecord)3 AttributeDefinition (org.openforis.idm.metamodel.AttributeDefinition)3 NodeDefinition (org.openforis.idm.metamodel.NodeDefinition)3