/**
   * Description of the Method
   *
   * @param os Description of the Parameter
   * @param clientVersionNo Description of the Parameter
   * @exception java.io.IOException Description of the Exception
   */
  public void toStream(java.io.DataOutput os, int clientVersionNo) throws java.io.IOException {
    super.toStream(os, clientVersionNo);

    writeUTF(os, m_appContext);

    int size = m_vecOfContextsCarriedFwd.size();

    os.writeInt(size);

    Enumeration enu = m_vecOfContextsCarriedFwd.elements();

    while (enu.hasMoreElements()) {
      DmiSourceContext context = (DmiSourceContext) enu.nextElement();

      context.toStream(os, clientVersionNo);
    }

    if (clientVersionNo <= 3000) return;

    os.writeInt(m_hashCarryFwdProps.size());

    Enumeration keys = m_hashCarryFwdProps.keys();

    while (keys.hasMoreElements()) {
      String key = (String) keys.nextElement();
      String value = (String) m_hashCarryFwdProps.get(key);

      writeUTF(os, key);
      writeUTF(os, value);
    }
  }
  /**
   * Description of the Method
   *
   * @param is Description of the Parameter
   * @param clientVersionNo Description of the Parameter
   * @exception java.io.IOException Description of the Exception
   */
  public void fromStream(java.io.DataInput is, int clientVersionNo) throws java.io.IOException {
    super.fromStream(is, clientVersionNo);

    m_appContext = readUTF(is);

    int size = is.readInt();

    for (int i = 0; i < size; i++) {
      DmiSourceContext context = new DmiSourceContext();

      context.fromStream(is, clientVersionNo);
      m_vecOfContextsCarriedFwd.add(context);
    }

    if (clientVersionNo <= 3000) return;

    int count = is.readInt();

    for (int i = 0; i < count; i++) {
      String key = readUTF(is);
      String value = readUTF(is);

      m_hashCarryFwdProps.put(key, value);
    }
  }