/**
  * 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();
 }