public ListIterator<ICFLibAnyObj> enumerateDetails(MssCFGenContext genContext) {
    final String S_ProcName = "CFCrmMssCFIterateContactAddress.enumerateDetails() ";

    if (genContext == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), S_ProcName, 1, "genContext");
    }

    ICFLibAnyObj genDef = genContext.getGenDef();
    if (genDef == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), S_ProcName, 1, "genContext.getGenDef()");
    }

    List<ICFLibAnyObj> list = new LinkedList<ICFLibAnyObj>();

    if (genDef instanceof ICFCrmContactObj) {
      Iterator<ICFCrmAddressObj> elements =
          ((ICFCrmContactObj) genDef).getOptionalComponentsAddress().iterator();
      while (elements.hasNext()) {
        list.add(elements.next());
      }
    } else {
      throw CFLib.getDefaultExceptionFactory()
          .newUnsupportedClassException(
              getClass(), S_ProcName, "genContext.getGenDef()", genDef, "ICFCrmContactObj");
    }

    return (list.listIterator());
  }
  public ICFLibAnyObj dereference(MssCFGenContext genContext) {
    final String S_ProcName = "CFAccMssCFReferenceContactURLTenant.dereference() ";

    if (genContext == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), S_ProcName, 1, "genContext");
    }

    ICFLibAnyObj genDef = genContext.getGenDef();
    if (genDef == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), S_ProcName, 1, "genContext.getGenDef()");
    }

    ICFAccTenantObj obj;

    if (genDef instanceof ICFAccContactURLObj) {
      obj = (ICFAccTenantObj) ((ICFAccContactURLObj) genDef).getRequiredOwnerTenant();
    } else {
      throw CFLib.getDefaultExceptionFactory()
          .newUnsupportedClassException(
              getClass(), S_ProcName, "genContext.getGenDef()", genDef, "ICFAccContactURLObj");
    }

    return (obj);
  }
  public String expandBody(MssCFGenContext genContext) {
    final String S_ProcName = "CFAccMssCFBindVendorUnitTenantId.expandBody() ";

    if (genContext == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), "expandBody", 1, "genContext");
    }

    ICFLibAnyObj genDef = genContext.getGenDef();
    if (genDef == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), "expandBody", 1, "genContext.getGenDef()");
    }

    String ret;

    if (genDef instanceof ICFAccVendorUnitObj) {
      long tenantId = ((ICFAccVendorUnitObj) genDef).getRequiredTenantId();
      ret = Long.toString(tenantId);
    } else {
      throw CFLib.getDefaultExceptionFactory()
          .newUnsupportedClassException(
              getClass(), "expandBody", "genContext.getGenDef()", genDef, "ICFAccVendorUnitObj");
    }

    return (ret);
  }
  public String expandBody(MssCFGenContext genContext) {
    final String S_ProcName = "CFAccMssCFBindISOCountryCurrencyISOCountryId.expandBody() ";

    if (genContext == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), "expandBody", 1, "genContext");
    }

    ICFLibAnyObj genDef = genContext.getGenDef();
    if (genDef == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), "expandBody", 1, "genContext.getGenDef()");
    }

    String ret;

    if (genDef instanceof ICFAccISOCountryCurrencyObj) {
      short iSOCountryId = ((ICFAccISOCountryCurrencyObj) genDef).getRequiredISOCountryId();
      ret = Short.toString(iSOCountryId);
    } else {
      throw CFLib.getDefaultExceptionFactory()
          .newUnsupportedClassException(
              getClass(),
              "expandBody",
              "genContext.getGenDef()",
              genDef,
              "ICFAccISOCountryCurrencyObj");
    }

    return (ret);
  }
  public Object getValueObject(MssCFGenContext genContext) {
    final String S_ProcName = "CFAccMssCFBindFeeDetailFeeId.getValueObject() ";

    if (genContext == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), "expandBody", 1, "genContext");
    }

    ICFLibAnyObj genDef = genContext.getGenDef();
    if (genDef == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), "expandBody", 1, "genContext.getGenDef()");
    }

    long feeId;
    if (genDef instanceof ICFAccFeeDetailObj) {
      feeId = ((ICFAccFeeDetailObj) genDef).getRequiredFeeId();
    } else {
      throw CFLib.getDefaultExceptionFactory()
          .newUnsupportedClassException(
              getClass(), "expandBody", "genContext.getGenDef()", genDef, "ICFAccFeeDetailObj");
    }

    return (feeId);
  }
  public String expandBody(MssCFGenContext genContext) {
    final String S_ProcName = "CFAccMssCFBindAccountChequeNumDigits.expandBody() ";

    if (genContext == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), "expandBody", 1, "genContext");
    }

    ICFLibAnyObj genDef = genContext.getGenDef();
    if (genDef == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), "expandBody", 1, "genContext.getGenDef()");
    }

    String ret;

    if (genDef instanceof ICFAccAccountObj) {
      short chequeNumDigits = ((ICFAccAccountObj) genDef).getRequiredChequeNumDigits();
      ret = Short.toString(chequeNumDigits);
    } else {
      throw CFLib.getDefaultExceptionFactory()
          .newUnsupportedClassException(
              getClass(), "expandBody", "genContext.getGenDef()", genDef, "ICFAccAccountObj");
    }

    return (ret);
  }
  public ICFLibAnyObj dereference(MssCFGenContext genContext) {
    final String S_ProcName = "CFAccMssCFReferenceMemoMemoData.dereference() ";

    if (genContext == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), S_ProcName, 1, "genContext");
    }

    ICFLibAnyObj genDef = genContext.getGenDef();
    if (genDef == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newNullArgumentException(getClass(), S_ProcName, 1, "genContext.getGenDef()");
    }

    ICFAccMemoDataObj obj;

    if (genDef instanceof ICFAccMemoObj) {
      obj = (ICFAccMemoDataObj) ((ICFAccMemoObj) genDef).getOptionalComponentsMemoData();
    } else {
      throw CFLib.getDefaultExceptionFactory()
          .newUnsupportedClassException(
              getClass(), S_ProcName, "genContext.getGenDef()", genDef, "ICFAccMemoObj");
    }

    return (obj);
  }