/** @return An Iterator of GpbCompositeTypeDMO objects. */
  @SuppressWarnings("unchecked")
  // org.dmd.dms.util.GenUtility.formatMV(GenUtility.java:970)
  public Iterator<GpbCompositeTypeREF> getMainElements() {
    DmcTypeGpbCompositeTypeREFMV attr =
        (DmcTypeGpbCompositeTypeREFMV) get(DmdgpbDMSAG.__mainElements);
    if (attr == null) return (((List<GpbCompositeTypeREF>) Collections.EMPTY_LIST).iterator());

    if (DmcOmni.instance().lazyResolution()) {
      if (attr.doLazyResolution(this)) {
        rem(attr.getAttributeInfo());
        return (((List<GpbCompositeTypeREF>) Collections.EMPTY_LIST).iterator());
      }
    }

    return (attr.getMV());
  }