public static DefaultAttributeMetaData getCompoundResultAttribute( RepositoryAnnotator annotator, EntityMetaData entityMetaData) { DefaultAttributeMetaData compoundAttributeMetaData = new DefaultAttributeMetaData( annotator.getFullName(), MolgenisFieldTypes.FieldTypeEnum.COMPOUND); compoundAttributeMetaData.setLabel(annotator.getSimpleName()); List<AttributeMetaData> outputAttrs = annotator.getOutputMetaData(); if (outputAttrs.size() == 1 && Iterables.get(outputAttrs, 0) .getDataType() .getEnumType() .equals(MolgenisFieldTypes.FieldTypeEnum.COMPOUND)) { compoundAttributeMetaData = (DefaultAttributeMetaData) outputAttrs.get(0); } else { for (AttributeMetaData currentAmd : outputAttrs) { String currentAttributeName = currentAmd.getName(); if (entityMetaData.getAttribute(currentAttributeName) == null) { compoundAttributeMetaData.addAttributePart(currentAmd); } } } return compoundAttributeMetaData; }