public ListIterator<ICFLibAnyObj> enumerateDetails(MssCFGenContext genContext) {
    final String S_ProcName = "CFAsteriskMssCFIterateHostNodeConfFile.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 ICFAsteriskHostNodeObj) {
      Iterator<ICFAsteriskConfigurationFileObj> elements =
          ((ICFAsteriskHostNodeObj) genDef).getOptionalComponentsConfFile().iterator();
      while (elements.hasNext()) {
        list.add(elements.next());
      }
    } else {
      throw CFLib.getDefaultExceptionFactory()
          .newUnsupportedClassException(
              getClass(), S_ProcName, "genContext.getGenDef()", genDef, "ICFAsteriskHostNodeObj");
    }

    return (list.listIterator());
  }
  public ListIterator<ICFLibAnyObj> enumerateDetails(MssCFGenContext genContext) {
    final String S_ProcName = "CFInternetMssCFIterateTSecGroupIncByGroup.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 ICFInternetTSecGroupObj) {
      Iterator<ICFSecurityTSecGroupIncludeObj> elements =
          ((ICFInternetTSecGroupObj) genDef).getRequiredChildrenIncByGroup().iterator();
      while (elements.hasNext()) {
        list.add(elements.next());
      }
    } else {
      throw CFLib.getDefaultExceptionFactory()
          .newUnsupportedClassException(
              getClass(), S_ProcName, "genContext.getGenDef()", genDef, "ICFInternetTSecGroupObj");
    }

    return (list.listIterator());
  }
  public ListIterator<ICFLibAnyObj> enumerateDetails(MssCFGenContext genContext) {
    final String S_ProcName = "CFBamMssCFIterateNumberTypeRef.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 ICFBamNumberTypeObj) {
      Iterator<ICFBamTableColObj> elements =
          ((ICFBamNumberTypeObj) genDef).getOptionalChildrenRef().iterator();
      while (elements.hasNext()) {
        list.add(elements.next());
      }
    } else {
      throw CFLib.getDefaultExceptionFactory()
          .newUnsupportedClassException(
              getClass(), S_ProcName, "genContext.getGenDef()", genDef, "ICFBamNumberTypeObj");
    }

    return (list.listIterator());
  }
  public String expand(MssCFGenContext genContext) {
    String retval;
    final String S_ProcName = "CFGenKbGelReference.expand() ";
    String referenceName = getRequiredReferenceName();

    ICFGenKbGenItemObj genItem =
        genContext.getGenEngine().findContextItem(genContext, referenceName);
    if (genItem == null) {
      genContext
          .getGenEngine()
          .getLog()
          .message(
              "Could not resolve reference method \""
                  + referenceName
                  + "\". \""
                  + "$"
                  + getRequiredSourceText()
                  + "$"
                  + "\" is invalid");
      return (null);
    }

    if (!(genItem instanceof MssCFGenReferenceObj)) {
      genContext
          .getGenEngine()
          .getLog()
          .message(
              "Resolution of reference method \""
                  + referenceName
                  + "\" returned a "
                  + genItem.getClass().getPackage().getName()
                  + "."
                  + genItem.getClass().getName()
                  + ", not a MssCFGenReferenceObj. \""
                  + "$"
                  + getRequiredSourceText()
                  + "$"
                  + "\" is invalid");
      return (null);
    }

    MssCFGenReferenceObj reference = (MssCFGenReferenceObj) genItem;

    ICFLibAnyObj refDef = reference.dereference(genContext);
    if (refDef == null) {
      genContext
          .getGenEngine()
          .getLog()
          .message(
              "Resolution of reference \""
                  + referenceName
                  + "\" returned null. \""
                  + "$"
                  + getRequiredSourceText()
                  + "$"
                  + "\" is invalid");
      return (null);
    }

    MssCFGenContext refContext = genContext.buildRefContext(refDef);
    if (refContext == null) {
      throw new RuntimeException(S_ProcName + "buildRefContext() failed");
    }

    ICFGenKbGelInstructionObj remainder = getOptionalChildrenRemainder();

    String expansion;
    if (remainder == null) {
      expansion = "";
    } else {
      expansion = remainder.expand(refContext);
    }

    return (expansion);
  }