/**
   * Rellena los datos del bean a partir de un nodo DOM en formato TDI XML
   *
   * @param __node Nodo DOM que contiene los datos del bean en formato TDI XML
   * @throws Exception Cuando el stream no tiene los datos adecuados para rellenar el bean
   */
  public void fromXML(org.w3c.dom.Element __node) throws Exception {
    {
      // Buscar el tamaqo del array
      org.w3c.dom.Element __element = getNodeByName(__node, "literalProperties");
      int __size = 0;
      if (__element != null) {
        __size = Integer.parseInt(__element.getAttribute("size"));
      }
      // Rellenar los valores del array
      for (int i = 0; i < __size; i++) {
        org.w3c.dom.Element __element2 = getNodeByName(__element, "literalProperties_" + i);
        org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty __entry;
        if (__element2.getAttribute("package") != null
            && __element2.getAttribute("package").length() != 0) {
          __entry =
              (org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty)
                  Class.forName(
                          __element2.getAttribute("package")
                              + "."
                              + __element2.getAttribute("type"))
                      .newInstance();
        } else {
          __entry = new org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty();
        }
        __entry.fromXML(__element2);
        addLiteralProperties(__entry);
      }
    }
    {
      // Buscar el tamaqo del array
      org.w3c.dom.Element __element = getNodeByName(__node, "objectProperties");
      int __size = 0;
      if (__element != null) {
        __size = Integer.parseInt(__element.getAttribute("size"));
      }
      // Rellenar los valores del array
      for (int i = 0; i < __size; i++) {
        org.w3c.dom.Element __element2 = getNodeByName(__element, "objectProperties_" + i);
        org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty __entry;
        if (__element2.getAttribute("package") != null
            && __element2.getAttribute("package").length() != 0) {
          __entry =
              (org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty)
                  Class.forName(
                          __element2.getAttribute("package")
                              + "."
                              + __element2.getAttribute("type"))
                      .newInstance();
        } else {
          __entry = new org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty();
        }
        __entry.fromXML(__element2);
        addObjectProperties(__entry);
      }
    }

    setChanged();
  }
 /**
  * Rutina para serializar a XMLRPC
  *
  * @param __struct__ Tabla hash donde se aqade el contenido del bean
  * @return Hashtable que contiene los datos del bean en la forma clave/valor
  */
 protected Object toRPC(java.util.Hashtable __struct__) {
   java.util.Vector __vector_literalProperties = new java.util.Vector();
   for (int __i__ = 0; __i__ < literalProperties.size(); __i__++) {
     org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty __object__ =
         (org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty)
             literalProperties.elementAt(__i__);
     __vector_literalProperties.addElement(__object__.toRPC());
   }
   __struct__.put("literalProperties", __vector_literalProperties);
   java.util.Vector __vector_objectProperties = new java.util.Vector();
   for (int __i__ = 0; __i__ < objectProperties.size(); __i__++) {
     org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty __object__ =
         (org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty)
             objectProperties.elementAt(__i__);
     __vector_objectProperties.addElement(__object__.toRPC());
   }
   __struct__.put("objectProperties", __vector_objectProperties);
   return __struct__;
 }
 /** ***************************************************************** */
 public void fillSampleData() {
   this.literalProperties.clear();
   org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty v_0_1 =
       new org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty();
   v_0_1.fillSampleData();
   this.addLiteralProperties(v_0_1);
   org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty v_0_2 =
       new org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty();
   v_0_2.fillSampleData();
   this.addLiteralProperties(v_0_2);
   this.objectProperties.clear();
   org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty v_1_1 =
       new org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty();
   v_1_1.fillSampleData();
   this.addObjectProperties(v_1_1);
   org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty v_1_2 =
       new org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty();
   v_1_2.fillSampleData();
   this.addObjectProperties(v_1_2);
 }
 /**
  * Deserializa el bean en formato JSON
  *
  * @param json objeto que contiene los datos del bean en formato JSON
  * @throws es.tid.serial.json.JSONException Cuando se produce un error en la deserialización del
  *     objeto JSON
  */
 public void fromJSON(JSONObject json) throws JSONException {
   JSONArray jArray;
   JSONArray jObjectArray;
   jObjectArray = json.getJSONArray("literalProperties");
   this.clearLiteralProperties();
   for (int i = 0; i < jObjectArray.length(); i++) {
     JSONObject jObj_i = jObjectArray.getJSONObject(i);
     org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty tmp =
         new org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty();
     tmp.fromJSON(jObj_i);
     this.addLiteralProperties(tmp);
   }
   jObjectArray = json.getJSONArray("objectProperties");
   this.clearObjectProperties();
   for (int i = 0; i < jObjectArray.length(); i++) {
     JSONObject jObj_i = jObjectArray.getJSONObject(i);
     org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty tmp =
         new org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty();
     tmp.fromJSON(jObj_i);
     this.addObjectProperties(tmp);
   }
 }
  /**
   * Rellena los campos del bean decodificando un nodo SOAP document
   *
   * @param beanNode Nodo XML padre que contiene los datos del bean
   * @throws Exception Cuando se produce un error en la deserialización del bean
   */
  public void fromSOAP(tdi.xml.parser.TdiXmlNode beanNode) {
    tdi.xml.parser.TdiXmlNode node;

    tdi.xml.parser.TdiXmlNode[] arrayNodes;
    node = beanNode.getFirstChildByName("literalProperties");
    if (node != null && node.getContents() != null) {

      arrayNodes = node.getChildsByName("LiteralProperty");
      if (arrayNodes != null) {
        this.clearLiteralProperties();
        for (int i = 0; i < arrayNodes.length; i++) {
          if (arrayNodes[i] != null && arrayNodes[i].getContents() != null) {
            org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty tmp =
                new org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty();
            tmp.fromSOAP(arrayNodes[i]);
            this.addLiteralProperties(tmp);
          } // arrayNodes[i] != null
        } // for
      } // arrayNodes != null
    } // node != null
    node = beanNode.getFirstChildByName("objectProperties");
    if (node != null && node.getContents() != null) {

      arrayNodes = node.getChildsByName("ObjectProperty");
      if (arrayNodes != null) {
        this.clearObjectProperties();
        for (int i = 0; i < arrayNodes.length; i++) {
          if (arrayNodes[i] != null && arrayNodes[i].getContents() != null) {
            org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty tmp =
                new org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty();
            tmp.fromSOAP(arrayNodes[i]);
            this.addObjectProperties(tmp);
          } // arrayNodes[i] != null
        } // for
      } // arrayNodes != null
    } // node != null
  }
 /**
  * Rellena el bean con los datos de una tabla hash en la forma clave/valor
  *
  * @param __params__ Tabla hash que contiene los objetos a partir de los cuales se va a rellenar
  *     el bean
  * @throws Exception Cuando la tabla hash no contiene los valores adecuados para rellenar el bean
  */
 public void fromRPC(java.util.Hashtable __params__) throws Exception {
   Object __object_literalProperties = __params__.get("literalProperties");
   if (__object_literalProperties == null) {
     throw new Exception(
         getClass().getName() + ".fromRPC() No se encuentra el atributo vector literalProperties");
   }
   if (!(__object_literalProperties instanceof java.util.Vector)) {
     throw new Exception(
         getClass().getName() + ".fromRPC() El atributo literalProperties no es de tipo Vector");
   }
   java.util.Vector __vector_literalProperties = (java.util.Vector) __object_literalProperties;
   for (int i = 0; i < __vector_literalProperties.size(); i++) {
     Object __element__ = __vector_literalProperties.elementAt(i);
     if (!(__element__ instanceof java.util.Hashtable)) {
       throw new Exception(
           getClass().getName()
               + ".fromRPC() El atributo literalProperties no es de tipo Hashtable");
     }
     java.util.Hashtable __hashtable__ = (java.util.Hashtable) __element__;
     org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty __value__;
     String __constructor__ = (String) __hashtable__.get("__constructor__");
     // Si existe el atributo __constructor__ crear el objeto de la clase indicada
     if (__constructor__ == null || __constructor__.equals("")) {
       __value__ = new org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty();
     } else {
       __value__ =
           (org.qualipso.advdoc.ws.client.retrieval.beans.LiteralProperty)
               Class.forName(__constructor__).newInstance();
     }
     __value__.fromRPC(__hashtable__);
     addLiteralProperties(__value__);
   }
   Object __object_objectProperties = __params__.get("objectProperties");
   if (__object_objectProperties == null) {
     throw new Exception(
         getClass().getName() + ".fromRPC() No se encuentra el atributo vector objectProperties");
   }
   if (!(__object_objectProperties instanceof java.util.Vector)) {
     throw new Exception(
         getClass().getName() + ".fromRPC() El atributo objectProperties no es de tipo Vector");
   }
   java.util.Vector __vector_objectProperties = (java.util.Vector) __object_objectProperties;
   for (int i = 0; i < __vector_objectProperties.size(); i++) {
     Object __element__ = __vector_objectProperties.elementAt(i);
     if (!(__element__ instanceof java.util.Hashtable)) {
       throw new Exception(
           getClass().getName()
               + ".fromRPC() El atributo objectProperties no es de tipo Hashtable");
     }
     java.util.Hashtable __hashtable__ = (java.util.Hashtable) __element__;
     org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty __value__;
     String __constructor__ = (String) __hashtable__.get("__constructor__");
     // Si existe el atributo __constructor__ crear el objeto de la clase indicada
     if (__constructor__ == null || __constructor__.equals("")) {
       __value__ = new org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty();
     } else {
       __value__ =
           (org.qualipso.advdoc.ws.client.retrieval.beans.ObjectProperty)
               Class.forName(__constructor__).newInstance();
     }
     __value__.fromRPC(__hashtable__);
     addObjectProperties(__value__);
   }
   setChanged();
 }