/** * Recursively add all the attributes in an compound attribute */ private void addCompoundAttributeParts(Repository repository, AttributeMetaData originalRepositoryAttributeMetaData, DefaultAttributeMetaData attributePartMetaData) { List<AttributeMetaData> subAttributeParts = new ArrayList<AttributeMetaData>(); for (AttributeMetaData originalRepositorySubAttributeMetaData : originalRepositoryAttributeMetaData .getAttributeParts()) { DefaultAttributeMetaData subAttributePartMetaData = copyAndRename(originalRepositorySubAttributeMetaData, getMergedAttributeName(repository, originalRepositorySubAttributeMetaData.getName()), getMergedAttributeLabel(repository, originalRepositoryAttributeMetaData.getLabel())); subAttributePartMetaData .setLabel(getMergedAttributeLabel(repository, originalRepositorySubAttributeMetaData.getLabel())); if (subAttributePartMetaData.getDataType().getEnumType().equals(MolgenisFieldTypes.FieldTypeEnum.COMPOUND)) { addCompoundAttributeParts(repository, originalRepositorySubAttributeMetaData, subAttributePartMetaData); } subAttributeParts.add(subAttributePartMetaData); } attributePartMetaData.setAttributesMetaData(subAttributeParts); }
getMergedAttributeLabel(repository, originalRepositoryAttr.getLabel())); if (originalRepositoryAttr.getDataType().getEnumType() .equals(MolgenisFieldTypes.FieldTypeEnum.COMPOUND))
private void addOutputFeatures(Protocol newRootProtocol, Iterable<AttributeMetaData> metaData, String prefix) { for (AttributeMetaData attributeMetaData : metaData) { ObservableFeature newFeature = new ObservableFeature(); if (dataService.findOne(ObservableFeature.ENTITY_NAME, new QueryImpl().eq(ObservableFeature.IDENTIFIER, attributeMetaData.getName())) == null) { newFeature.setIdentifier(attributeMetaData.getName()); newFeature.setName(attributeMetaData.getLabel()); newFeature.setDataType(attributeMetaData.getDataType().toString()); dataService.add(ObservableFeature.ENTITY_NAME, newFeature); newRootProtocol.getFeatures().add(newFeature); } dataService.update(Protocol.ENTITY_NAME, newRootProtocol); } }