/**
   * This utility method is used to get the String representation of this object of <code>InPort
   * </code>
   *
   * @return The String representation of this object.
   * @since Tifosi2.0
   */
  public String toString() {
    String baseString = super.toString();
    StringBuffer strBuf = new StringBuffer();

    strBuf.append(baseString);
    strBuf.append("");
    strBuf.append("sps inport Details ");
    strBuf.append("[");
    strBuf.append("is sync request type = ");
    strBuf.append(m_bIsSyncRequestType);
    strBuf.append(", ");
    strBuf.append("Description = ");
    strBuf.append(m_strDscription);
    strBuf.append(", ");
    strBuf.append("Java Class = ");
    strBuf.append(m_strJavaClass);
    strBuf.append(", ");
    strBuf.append("Port name = ");
    strBuf.append(m_strPortName);
    strBuf.append(", ");
    strBuf.append("XSD = ");
    strBuf.append(m_strXSD);
    strBuf.append(", ");
    if (m_params != null) {
      strBuf.append("Aliases = ");
      for (int i = 0; i < m_params.size(); i++) {
        strBuf.append((i + 1) + ". ");
        strBuf.append(((Param) m_params.elementAt(i)).toString());
        strBuf.append(", ");
      }
    }
    strBuf.append("]");
    return strBuf.toString();
  }
  public void clearExternalXSDs() {
    if (m_params == null) return;

    for (int i = 0; i < m_params.size(); i++) {
      Param param = (Param) m_params.get(i);

      if (param.getParamName().startsWith("External_")) removeParam(param);
    }
  }
  /**
   * This method is called to write this object of <code>InPort</code> to the specified output
   * stream object.
   *
   * @param out DataOutput object
   * @param versionNo Description of the Parameter
   * @exception IOException if an error occurs while converting data and writing it to a binary
   *     stream.
   * @since Tifosi2.0
   */
  public void toStream(DataOutput out, int versionNo) throws IOException {
    super.toStream(out, versionNo);

    writeUTF(out, m_strPortName);
    writeUTF(out, m_strDscription);
    writeUTF(out, m_strXSD);
    writeUTF(out, m_strJavaClass);
    out.writeBoolean(m_bIsSyncRequestType);

    if (m_params != null && m_params.size() > 0) {
      int num = m_params.size();

      out.writeInt(num);
      for (int i = 0; i < num; ++i) {
        Param param = (Param) m_params.elementAt(i);

        param.toStream(out, versionNo);
      }
    } else {
      out.writeInt(0);
    }
  }
  /**
   * Gets the extNamespaces attribute of the InPort object
   *
   * @return The extNamespaces value
   */
  public Enumeration getExtNamespaces() {
    Vector v = new Vector();
    int length = "External_".length();

    int size = m_params.size();

    for (int i = 0; i < size; i++) {
      Param param = (Param) m_params.get(i);

      if (param.getParamName().startsWith("External_")) {
        v.add(param.getParamName().substring(length));
      }
    }

    return v.elements();
  }
  /**
   * Retruns the xml string equivalent of this object
   *
   * @param document instance of Xml Document.
   * @return org.w3c.dom.Node
   * @exception FioranoException thrown in case of error.
   */
  protected Node toJXMLString(Document document) throws FioranoException {
    Node root0 = document.createElement("InPort");

    ((Element) root0).setAttribute("isSyncRequestType", "" + isSyncRequestType());

    Node child = null;

    child = XMLDmiUtil.getNodeObject("Name", m_strPortName, document);
    if (child != null) {
      root0.appendChild(child);
    }

    child = XMLDmiUtil.getNodeObject("Description", m_strDscription, document);
    if (child != null) {
      root0.appendChild(child);
    }

    if (m_strXSD != null) {
      Element elem = document.createElement("XSD");
      CDATASection cdata = document.createCDATASection(m_strXSD);

      elem.appendChild(cdata);
      root0.appendChild(elem);
    }

    child = XMLDmiUtil.getNodeObject("JavaClass", m_strJavaClass, document);
    if (child != null) {
      root0.appendChild(child);
    }

    if (m_params != null && m_params.size() > 0) {
      Enumeration _enum = m_params.elements();

      while (_enum.hasMoreElements()) {
        Param param = (Param) _enum.nextElement();
        if (!StringUtil.isEmpty(param.getParamName())
            && !StringUtil.isEmpty(param.getParamValue())) {
          Node paramNode = param.toJXMLString(document);

          root0.appendChild(paramNode);
        }
      }
    }

    return root0;
  }