Esempio n. 1
0
  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;
  }