/**
   * 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);
    }
  }
  /**
   * 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;
  }
  /**
   * 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);
    }
  }
  /**
   * This method tests whether this object of <code>InPort</code> has the required(mandatory) fields
   * set, before inserting values in the database.
   *
   * @exception FioranoException if the object is not valid
   * @since Tifosi2.0
   */
  public void validate() throws FioranoException {
    if (m_strPortName == null) {
      throw new FioranoException(DmiErrorCodes.ERR_INVALID_ARGUMENT_ERROR);
    }

    if (m_params != null) {
      Enumeration _enum = m_params.elements();

      while (_enum.hasMoreElements()) {
        Param param = (Param) _enum.nextElement();

        param.validate();
      }
    }
  }
  /**
   * This is called to read this object <code>InPort</code> from the specified object of input
   * stream.
   *
   * @param is DataInput object
   * @param versionNo Description of the Parameter
   * @exception IOException if an error occurs while reading bytes or while converting them into
   *     specified Java primitive type.
   * @since Tifosi2.0
   */
  public void fromStream(DataInput is, int versionNo) throws IOException {
    super.fromStream(is, versionNo);

    m_strPortName = readUTF(is);
    m_strDscription = readUTF(is);
    m_strXSD = readUTF(is);
    m_strJavaClass = readUTF(is);
    m_bIsSyncRequestType = is.readBoolean();

    int size = is.readInt();

    for (int i = 0; i < size; ++i) {
      Param param = new Param();

      param.fromStream(is, versionNo);
      m_params.addElement(param);
    }
  }
 /**
  * This interface method is called to clear all the objects of <code>Param</code> , from this
  * object of <code>InPort</code>.
  *
  * @see #addParam(Param)
  * @see #removeParam(Param)
  * @see #getParams()
  * @since Tifosi2.0
  */
 public void clearParam() {
   if (m_params != null) {
     m_params.clear();
   }
 }
 /**
  * This interface method is called to remove specified object of <code>Param</code> , representing
  * extra parameter for inport, from this object of <code>InPort</code> .
  *
  * @param param Object of Param to be removed from InPort
  * @see #addParam(Param)
  * @see #clearParam()
  * @see #getParams()
  * @since Tifosi2.0
  */
 public void removeParam(Param param) {
   if (m_params != null) {
     m_params.remove(param);
   }
 }
 /**
  * This interface method is called to add specified object of <code>Param</code> , representing
  * extra parameter for inport, to this object of <code>InPort</code> .
  *
  * @param param Object of Param to be added to InPort
  * @see #removeParam(Param)
  * @see #clearParam()
  * @see #getParams()
  * @since Tifosi2.0
  */
 public void addParam(Param param) {
   if (m_params == null) {
     m_params = new Vector();
   }
   m_params.addElement(param);
 }
 /**
  * This interface method is called to get enumeration of all the objects of <code>Param</code>,
  * for this object of <code>InPort</code>.
  *
  * @return Enumeration of all Param objects
  * @see #addParam(Param)
  * @see #removeParam(Param)
  * @see #clearParam()
  * @since Tifosi2.0
  */
 public Enumeration getParams() {
   if (m_params == null) {
     m_params = new Vector();
   }
   return m_params.elements();
 }