format 75
"web" // iplan::web
  revision 141
  modified_by 5 "jviqueira"
  // class settings
  //class diagram settings
  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
  //use case diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default class_drawing_mode default shadow default show_stereotype_properties default
  //sequence diagram settings
  show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default show_class_context_mode default show_msg_context_mode default
  //collaboration diagram settings
  show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default show_msg_context default draw_all_relations default shadow default show_stereotype_properties default
  //object diagram settings
   write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
  //component diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
  //deployment diagram settings
  package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
  //state diagram settings
  package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
  show_activities default region_horizontally default drawing_language default show_stereotype_properties default
  //activity diagram settings
  package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
  show_infonote default drawing_language default show_stereotype_properties default
  
  php_dir "iplan/web"
  classview 180229 "Web Classes"
    //class diagram settings
    draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
    //collaboration diagram settings
    show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default show_msg_context default draw_all_relations default shadow default show_stereotype_properties default
    //object diagram settings
     write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
    //sequence diagram settings
    show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default show_class_context_mode default show_msg_context_mode default
    //state diagram settings
    package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
    show_activities default region_horizontally default drawing_language default show_stereotype_properties default
    //class settings
    //activity diagram settings
    package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
    show_infonote default drawing_language default show_stereotype_properties default
    associated_deployment_view deploymentview_ref 187013 // Web Deployment
    classdiagram 180357 "Web Form Class Diagram"
      draw_all_relations no hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
      size A2-Landscape
    end

    classdiagram 252421 "Web Form Herarchy Diagram"
      draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
      size A4-Landscape
    end

    class 477957 "Component"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Es la base de la jerarquia de componentes HTML.

@method string getId()
@method Component setId()
@method string getName()
@method Component setName()
@method string getLabel()
@method Component setLabel()
@method string getStyle()
@method Component setStyle()
@method string getHint()
@method Component setHint()
@method string|array getValidate()
@method Component setValidate()
@method string getMaps()
@method Component setMaps()
@method string getGroup()
@method Component setGroup()
@method string getValue()
@method Component setValue()
@method boolean getDisabled()
@method Component setDisabled()
@method int getSize()
@method Component setSize()
@method string getTemplate()
@method Component setTemplate()
"
      attribute 1137157 "EVENT_BLUR"
	const_attribute package explicit_type "string"
	init_value "'onblur'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onBlur\" de los componentes del navegador"
      end

      attribute 1137413 "EVENT_CHANGE"
	const_attribute package explicit_type "string"
	init_value "'onchange'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onChange\" de los componentes del navegador"
      end

      attribute 1136901 "EVENT_CLICK"
	const_attribute package explicit_type "string"
	init_value "'onclick'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onClick\" de los componentes del navegador"
      end

      attribute 1137029 "EVENT_DBLCLICK"
	const_attribute package explicit_type "string"
	init_value "'ondblclick'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onDblClick\" de los componentes del navegador"
      end

      attribute 1137925 "EVENT_KEYDOWN"
	const_attribute package explicit_type "string"
	init_value "'onkeydown'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onKeyDown\" de los componentes del navegador"
      end

      attribute 1138181 "EVENT_KEYPRESS"
	const_attribute package explicit_type "string"
	init_value "'onkeypress'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onKeyPress\" de los componentes del navegador"
      end

      attribute 1138053 "EVENT_KEYUP"
	const_attribute package explicit_type "string"
	init_value "'onkeyup'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string  Un símbolo que representa el evento \"onKeyUp\" de los componentes del navegador"
      end

      attribute 1137285 "EVENT_FOCUS"
	const_attribute package explicit_type "string"
	init_value "'onfocus'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onFocus\" de los componentes del navegador"
      end

      attribute 1138309 "EVENT_MOUSEDOWN"
	const_attribute package explicit_type "string"
	init_value "'onmousedown'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onMouseDown\" de los componentes del navegador"
      end

      attribute 1138437 "EVENT_MOUSEMOVE"
	const_attribute package explicit_type "string"
	init_value "'onmousemove'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onMouseMove\" de los componentes del navegador"
      end

      attribute 1138693 "EVENT_MOUSEOUT"
	const_attribute package explicit_type "string"
	init_value "'onmouseout'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string  Un símbolo que representa el evento \"onMouseOut\" de los componentes del navegador"
      end

      attribute 1138821 "EVENT_MOUSEOVER"
	const_attribute package explicit_type "string"
	init_value "'onmouseover'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onMouseOver\" de los componentes del navegador"
      end

      attribute 1138565 "EVENT_MOUSEUP"
	const_attribute package explicit_type "string"
	init_value "'onmouseup'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onMouseUp\" de los componentes del navegador"
      end

      attribute 1137669 "EVENT_RESET"
	const_attribute package explicit_type "string"
	init_value "'onreset'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onReset\" de los componentes del navegador"
      end

      attribute 1137541 "EVENT_SELECT"
	const_attribute package explicit_type "string"
	init_value "'onselect'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onSelect\" de los componentes del navegador"
      end

      attribute 1137797 "EVENT_SUBMIT"
	const_attribute package explicit_type "string"
	init_value "'onsubmit'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string Un símbolo que representa el evento \"onSubmit\" de los componentes del navegador"
      end

      attribute 593157 "id"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el identificador con el que se crea el componente en HTML."
      end

      attribute 593285 "name"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el nombre del parmetro que ser remitido al script que procesa el formulario"
      end

      attribute 593541 "label"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el rtulo que acompaa al componente en pantalla, es opcional"
      end

      attribute 593029 "style"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string El estilo personalizado que se aplica al componente (CSS)"
      end

      attribute 594693 "hint"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string descripcin de la funcin del componente o de como usarlo"
      end

      attribute 593413 "validate"
	private explicit_type "array|string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array|string el conjunto de validaciones que debe aplicarse al componente"
      end

      attribute 593669 "maps"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string opcional, es el atributo del que se toma o al que le asigna valor el componente"
      end

      attribute 1697797 "group"
	private explicit_type "string"
	init_value "''"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string opcional, es un alias utilizado por WebList para identificar componentes de filtro que deben ser evaluados juntos"
      end

      attribute 593925 "value"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el valor del dato que visualiza el componente"
      end

      attribute 601477 "disabled"
	private explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var bool indica si el componente est deshabilitado"
      end

      attribute 725381 "size"
	private explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int especifica el ancho en pantalla de un componente , en el caso de los select, la cantidad de tems a mostrar."
      end

      attribute 1913093 "width"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ${type} el ancho del componente expresado en alguna medida válida en html"
      end

      attribute 1913221 "height"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ${type} el alto del componente expresado en alguna medida válida en html"
      end

      attribute 809605 "template"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string un template para poner los maps todos juntos en un solo \"value\""
      end

      attribute 1136773 "events"
	private explicit_type "array"
	init_value "array()"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array La colección que almacena los eventos a los que responde el objeto"
      end

      operation 938501 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 945285 "__call"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param in name "method" explicit_type "string"
	  param in name "params" explicit_type "mixed"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Uso este mtodo para hacer los setter y getter"
      end

      classrelation 681093 // <realization>
	relation 677765 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 681093 // <realization>
	  b parent class_ref 492933 // TemplateInterface
      end

      operation 1252229 "toURL"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una versin string del nombre del componente y de su valor. Slo sirve cuando ambos datos estn definidos.
@param string $prefix el prefijo del nombre del elemento
@param string suffix el sufijo del nombre del elemento
@return string una porcin de URL que representa el componente y su valor o el string vaco si no tiene un value asignado o si no tiene un name."
      end

      operation 1330437 "__construct"
	preserve_cpp_body_indent public return_type class_ref 477957 // Component
	nparams 6
	  param in name "label" explicit_type "string"
	    defaultvalue "null"
	  param in name "name" explicit_type "string"
	    defaultvalue "null"
	  param in name "maps" explicit_type "string"
	    defaultvalue "null"
	  param in name "value" explicit_type "mixed"
	    defaultvalue "null"
	  param in name "template" explicit_type "string"
	    defaultvalue "null"
	  param in name "group" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea un componente.
@param string $label el rótulo del componente
@param string $name el nombre del componente
@param string $maps el valor al que mapea el componente
@param mixed $value el valor predeterminado del componente
@param string $template el template a utilizar para el renderizado
@param string $group el alias de grupo utilizado por WebList
@return Component La instancia del componente inicializada."
      end

      operation 1665157 "addEvent"
	preserve_cpp_body_indent public return_type class_ref 477957 // Component
	nparams 4
	  param in name "event" explicit_type "string"
	  param in name "function" explicit_type "string|Closure"
	  param in name "params" explicit_type "Mixed"
	    defaultvalue "null"
	  param in name "jsfunction" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Indica que el componente es capaz de responder a un evento y que para el mismo es necesario ejecutar la función que se indica.

@param string $event el evento a capturar
@param string|Closure $function la función a ejecutar cuando se produzca el evento. Se puede pasar el nombre de la función como un string o definir la propia función como anónima. Los parámetros que recibirá son (ApplicationContext $context, Form $form, mixed $params).
@param mixed $params un valor (puede ser un array) que se pasará como parámetro adicional a la función
@param string $jsfunction una función de verificación de JS que será invocada para determinar si el llamado del evento tiene o no a lugar.

@return Renderable Devuelve el template que sirve de respuesta al pedido."
      end

      operation 1665413 "getEvents"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 1
	  param in name "event" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera la lista de eventos completa si no se pasa parámetro o de un evento determinado si se lo indica
@param string $event el evento del que se desea recuperar la configuración.

@return array|false La lista de eventos configurados para el componente. Si no hay ninguno retorna false."
      end

      operation 1672069 "removeEvent"
	preserve_cpp_body_indent public return_type class_ref 477957 // Component
	nparams 2
	  param in name "event" explicit_type "string"
	  param in name "function" explicit_type "Closure|string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Desactiva la ejecución de un evento en particular.

@param string $event el evento a capturar
@param string|Closure $function la función a ejecutar cuando se produzca el evento. Se puede pasar el nombre de la función como un string o definir la propia función como anónima. Los parámetros que recibirá son (ApplicationContext $context, mixed $params).

@return Form el formulario modificado."
      end
    end

    class 506373 "HiddenComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 716805 // <generalisation>
	relation 713477 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 716805 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      operation 983685 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 492805 "EmptyComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 680581 // <generalisation>
	relation 677381 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 680581 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      operation 953477 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 478213 "TextComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "@method Int getSize()
@method TextComponent setSize()
"
      classrelation 665733 // <generalisation>
	relation 662533 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 665733 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      attribute 665477 "maxlength"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la longitud mxima del texto que soporta el componente"
      end

      operation 945669 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 478341 "PasswordComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      operation 952965 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      classrelation 709253 // <generalisation>
	relation 705925 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 709253 // <generalisation>
	  b parent class_ref 478213 // TextComponent
      end
    end

    class 486277 "TextArea"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "@method Int getRows()
@method TextArea setSize()
@method Int getCols()
"
      classrelation 667525 // <generalisation>
	relation 664325 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 667525 // <generalisation>
	  b parent class_ref 478213 // TextComponent
      end

      attribute 594309 "rows"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de filas del rea de texto que se muestran en simultneo"
      end

      attribute 793733 "cols"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de columnas del rea de texto que se muestran en simultneo"
      end

      operation 945797 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 478469 "SelectComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "@method mixed getSelected()
@method SelectComponent setSelected()
@method SelectComponent setOptions()
@method SelectComponent getOptions()
@method SelectComponent  setWidth()
@method int getWidth()
@method SelectComponent setOptional()
@method boolean getOptional()"
      classrelation 665861 // <generalisation>
	relation 662661 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 665861 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      attribute 624133 "options"
	protected explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array las alternativas que el componente expone al usuario"
      end

      attribute 594181 "selected"
	protected explicit_type "mixed"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var mixed el valor seleccionado"
      end

      attribute 731909 "width"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int indica el tamao en horizontal del componente."
      end

      attribute 800901 "optional"
	protected explicit_type "bool"
	init_value "TRUE"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean indica si aparece el \"-\" en la lista, hacindola opcional. En forma predeterminada es TRUE"
      end

      operation 945925 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1252997 "toURL"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una versin string del nombre del componente y de su valor. Slo sirve cuando ambos datos estn definidos.
@param string $prefix el prefijo del nombre del elemento
@param string suffix el sufijo del nombre del elemento
@return string una porcin de URL que representa el componente y su valor o el string vaco si no tiene un value asignado o si no tiene un name."
      end
    end

    class 484997 "MultiselectComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Un lista de selección múltiple.

@method MultiselectComponent setRows()
@method int getRows()"
      classrelation 665989 // <generalisation>
	relation 662789 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 665989 // <generalisation>
	  b parent class_ref 478469 // SelectComponent
      end

      attribute 617477 "rows"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de filas que se muestra en simultneo"
      end

      operation 953093 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1253125 "toURL"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una versin string del nombre del componente y de su valor. Slo sirve cuando ambos datos estn definidos.
@param string $prefix el prefijo del nombre del elemento
@param string suffix el sufijo del nombre del elemento
@return string una porcin de URL que representa el componente y su valor o el string vaco si no tiene un value asignado o si no tiene un name."
      end
    end

    class 485253 "RadioComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "@method mixed getSelected()
@method RadioComponent setSelected()
@method array getOptions()
@method RadioComponent setOptions()"
      attribute 624261 "options"
	protected explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array las alternativas que el componente expone al usuario. Formato: array ( array(value=>,description=>,disabled=>),...)"
      end

      classrelation 666885 // <generalisation>
	relation 663685 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 666885 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      attribute 594565 "selected"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var bool Indica si est seleccionado o no."
      end

      operation 946053 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 485381 "CheckboxComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "@method mixed getChecked()
@method CheckboxComponent setChecked()
@method CheckboxComponent  setOptions()
@method array getOptions()
"
      classrelation 667013 // <generalisation>
	relation 663813 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 667013 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      attribute 624389 "options"
	protected explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array las alternativas que el componente expone al usuario"
      end

      attribute 594437 "checked"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var bool Indica si est chequeado o no."
      end

      operation 946181 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1442565 "__construct"
	preserve_cpp_body_indent public return_type class_ref 477957 // Component
	nparams 6
	  param in name "label" explicit_type "string"
	    defaultvalue "null"
	  param in name "name" explicit_type "string"
	    defaultvalue "null"
	  param in name "maps" explicit_type "string"
	    defaultvalue "null"
	  param in name "value" explicit_type "mixed"
	    defaultvalue "null"
	  param in name "checked" explicit_type "bool"
	    defaultvalue "null"
	  param in name "template" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea un componente.
@param string $label el rtulo del componente
@param string $name el nombre del componente
@param string $maps el valor al que mapea el componente
@param mixed $value el valor predeterminado del componente
@param mixed $checked el valor predeterminado del componente
@param string $template el template a utilizar para el renderizado
@return CheckboxComponent La instancia del componente inicializada."
      end

      operation 1939845 "toURL"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una versin string del nombre del componente y de su valor. Slo sirve cuando ambos datos estn definidos.
@param string $prefix el prefijo del nombre del elemento
@param string suffix el sufijo del nombre del elemento
@return string una porcin de URL que representa el componente y su valor o el string vaco si no tiene un value asignado o si no tiene un name."
      end
    end

    class 485509 "ButtonComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "@method ButtonComponent setAction()
@method string getAction()"
      attribute 631045 "action"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la accin predeterminada del botn: submit, reset y a futuro otras opciones"
      end

      attribute 927877 "script"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string un cdigo JS que se vincular a los eventos de botn."
      end

      classrelation 666501 // <generalisation>
	relation 663301 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 666501 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      operation 1330565 "__construct"
	preserve_cpp_body_indent public return_type class_ref 485509 // ButtonComponent
	nparams 3
	  param in name "value" explicit_type "mixed"
	    defaultvalue "null"
	  param in name "action" explicit_type "string"
	    defaultvalue "null"
	  param in name "script" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea un componente.

@param ${t0} ${p0} el nombre del componente
@param ${t1} ${p1} la acción del botón
@param ${type} $script el código javascript a ejecutar al presionar el botón

@return Component La instancia del componente inicializada."
      end

      operation 953349 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1252869 "toURL"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una versin string del nombre del componente y de su valor. Slo sirve cuando ambos datos estn definidos.
@param string $prefix el prefijo del nombre del elemento
@param string suffix el sufijo del nombre del elemento
@return string una porcin de URL que representa el componente y su valor o el string vaco si no tiene un value asignado o si no tiene un name."
      end
    end

    class 485637 "ImageButtonComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 666629 // <generalisation>
	relation 663429 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 666629 // <generalisation>
	  b parent class_ref 485509 // ButtonComponent
      end

      operation 953221 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 485765 "FileComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "@method string|array getTypes()
@method FileComponent setTypes()
"
      classrelation 666757 // <generalisation>
	relation 663557 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 666757 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      attribute 594821 "types"
	protected explicit_type "mixed"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string|array la lista de extensiones permitidas"
      end

      operation 946309 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1294085 "placeIn"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 3
	  param in name "fileData" explicit_type "array"
	  param in name "path" explicit_type "string"
	  param in name "newName" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Hace las operaciones necesarias para poner el archivo en la carpeta indicada e incluso renombrarlo.
@param array $fileData la informacin de $_FILES[] obtenida por Form::getValueOf()
@param string $path el directorio donde ubicar la copia
@param string $newName en caso que no se desee usar el nombre original, es posible cambiarselo a otro arbitrario.

@return string La ruta al archivo definitivo."
      end
    end

    class 609157 "LabelComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 846469 // <generalisation>
	relation 840837 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 846469 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      operation 1234181 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "\"\""
	  param in name "suffix" explicit_type "string"
	    defaultvalue "\"\""
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 485893 "GroupComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 162182 // <generalisation>
	relation 162182 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 162182 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      classrelation 162566 // items (<directional aggregation>)
	relation 162438 o-->
	  a role_name "items" multiplicity "*" init_value "array()" private
	    comment "@var array la lista de componentes	
"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 162566 // items (<directional aggregation>)
	  b parent class_ref 477957 // Component
      end

      operation 156678 "addComponent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "element" type class_ref 477957 // Component
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega un componente al GroupComponent

@param Component $element el elemento a agregar al GroupComponent

@return GroupComponent el GroupComponent con el componente agregado."
      end

      operation 156806 "&getComponent"
	preserve_cpp_body_indent public return_type class_ref 477957 // Component
	nparams 1
	  param in name "name" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el componente que responde al nombre especificado.

@param string $name el nombre del componente a recuperar.

@return Component|array El componente solicitado o NULL sino existe. En el caso que se llame sin parmetros retorna un arreglo con todos los componentes del formulario en una sola lista."
      end

      operation 156934 "removeComponent"
	preserve_cpp_body_indent public return_type class_ref 485893 // GroupComponent
	nparams 1
	  param in name "name" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Quita un componente del la formacin.
@param string name el nombre del componente a quitar.

@result GroupComponent El GroupComponent sin el componente."
      end

      operation 150150 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 486021 "Form"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      attribute 927749 "FORM_CUSTOM"
	const_attribute package explicit_type "string"
	init_value "\"FORM_CUSTOM\""
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "Constate que representa un formulario estndar sin ningn agregado automtico de nada. Es el predeterminado."
      end

      attribute 945285 "FORM_BACK"
	const_attribute package explicit_type "string"
	init_value "\"FORM_BACK\""
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "Constate que representa un formulario estndar que slo muestra un botn para volver atrs."
      end

      attribute 927493 "FORM_OK_CANCEL"
	const_attribute package explicit_type "string"
	init_value "\"FORM_OK_CANCEL\""
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "Constate que representa un formulario con los botones \"Aceptar\" y \"Cancelar\""
      end

      attribute 927621 "FORM_YES_NO"
	const_attribute package explicit_type "string"
	init_value "\"FORM_YES_NO\""
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "Constate que representa un formulario con los botones \"Sí\" y \"No\""
      end

      attribute 1199749 "FORM_SAVE_BACK"
	const_attribute package explicit_type "string"
	init_value "\"FORM_SAVE_BACK\""
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "Constate que representa un formulario con los botones \"Guardar\" y \"Cancelar\""
      end

      attribute 631429 "id"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	set_oper operation_ref 984069 // setId
	comment "@var string el identificador del formulario"
      end

      attribute 631301 "action"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	set_oper operation_ref 983941 // setAction
	comment "@var string el valor del atributo <form action=\"xxxx\""
      end

      attribute 631173 "method"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1234693 // getMethod
	set_oper operation_ref 983813 // setMethod
	comment "@var string el valor del atributo <form method=\"xxx\""
      end

      attribute 601861 "title"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el ttulo del formulario"
      end

      attribute 631557 "enctype"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	set_oper operation_ref 984197 // setEnctype
	comment "@var string el tipo de codificacin a utilizar, puede adoptar 3 valores \"application/x-www-form-urlencoded\" (default), \"multipart/form-data\" y \"text/plain\""
      end

      attribute 638085 "context"
	protected type class_ref 417029 // ApplicationContext
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1090437 // getContext
	set_oper operation_ref 1090565 // setContext
	comment "@var ApplicationContext el contexto en el cual se ejecuta el Form. Esta variable solo adquiere valor al llamar a deploy()."
      end

      attribute 645381 "target"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string de existir indica cul es el div en el cual se debe volcar el resultado del formulario una vez enviado"
      end

      attribute 652293 "formTemplate"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1055237 // getFormTemplate
	set_oper operation_ref 1055365 // setFormTemplate
	comment "@var string el template que se renderiza para mostrar el form"
      end

      attribute 652421 "successTemplate"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1055493 // getSuccessTemplate
	set_oper operation_ref 1055621 // setSuccessTemplate
	comment "@var string el template predeterminado sobre el cual se muestran mensajes de xito o error cuando no hay un formulario involucrado"
      end

      attribute 718725 "openTag"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1131781 // getOpenTag
	set_oper operation_ref 1131909 // setOpenTag
	comment "@var boolean determina si el tag <form> debe o no escribirse. En forma predeterminada es TRUE, o sea, lo escribe"
      end

      attribute 793861 "closeTag"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1192197 // getCloseTag
	set_oper operation_ref 1192325 // setCloseTag
	comment "@var boolean determina si el tag </form> debe o no escribirse. En forma predeterminada es TRUE hace que se escriba"
      end

      attribute 807685 "prefix"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1233669 // getPrefix
	set_oper operation_ref 1233797 // setPrefix
	comment "@var string el prefijo usado para la generacin de nombres"
      end

      attribute 807813 "suffix"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1233925 // getSuffix
	set_oper operation_ref 1234053 // setSuffix
	comment "@var string el sufijo usado para la generacin de nombres"
      end

      attribute 927365 "formType"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1413253 // getFormType
	set_oper operation_ref 1413381 // setFormType
	comment "@var string Un valor que indica si el formulario emplea algn set de botones estndar."
      end

      attribute 1138949 "updateds"
	private explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array la lista de componentes que han sido actualizados en respuesta a un evento. (Ver deploy())"
      end

      attribute 1310725 "ajaxAction"
	private explicit_type "string"
	init_value "'uws_submit'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el nombre de la función que se llamará en caso de que AJAX esté disponible. La firma de la función es function (form, validations, target)"
      end

      classrelation 680837 // items (<directional aggregation>)
	relation 677637 o-->
	  a role_name "items" multiplicity "1..*" private
	    comment "@var array la lista de items del formulario"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 680837 // items (<directional aggregation>)
	  b parent class_ref 477957 // Component
      end

      operation 1125253 "__construct"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea una instancia de Form.

@return Form"
      end

      operation 953733 "setTitle"
	preserve_cpp_body_indent public return_type class_ref 486021 // Form
	nparams 1
	  param in name "title" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura el ttulo del formulario.

@param string $title el ttulo que figurar como encabezado del formulario

@return Form el formulario con el ttulo configurado"
      end

      operation 1020805 "getValueOf"
	preserve_cpp_body_indent public explicit_return_type "mixed"
	nparams 1
	  param in name "name" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el valor de un componente del formulario.

@param string $name el nombre del componente. Es importante recordar que en los casos que no se especifica el name, se usa el valor del \"maps\".

@return mixed El valor actual del componente indicado."
      end

      operation 1034885 "setValueOf"
	preserve_cpp_body_indent public return_type class_ref 486021 // Form
	nparams 2
	  param in name "name" explicit_type "string"
	  param in name "value" explicit_type "mixed"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Establece el valor predeterminado de un componente del formulario.

@param string $name el nombre del componente que queremos configurar.
@param mixed $value el valor a asignarle

@return retorna el Form con el componente configurado."
      end

      operation 983813 "setMethod"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->method = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 631173 // method
      end

      operation 1234693 "getMethod"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->method;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 631173 // method
	comment "Recupera el mtodo por el que se hace el submit del formulario.

@return string El mtodo, tpicamente GET, POST o null si no est configurado."
      end

      operation 983941 "setAction"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->action = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 631301 // action
      end

      operation 984069 "setId"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->id = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 631429 // id
      end

      operation 984197 "setEnctype"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->enctype = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 631557 // enctype
      end

      operation 945541 "addComponent"
	preserve_cpp_body_indent public return_type class_ref 486021 // Form
	nparams 1
	  param in name "component" type class_ref 477957 // Component
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega un elemento al formulario.

@param Component $component el elemento a agregar

@return Form el formulario al que se le agreg el elemento."
      end

      operation 1020933 "&getComponent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "name" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve el componente indicado.

@param string $name el nombre del componente a recuperar. El name puede es el indicado por el usuario o el maps en los casos que no se configur el name.

@return Component|array El componente solicitado o NULL sino existe. En el caso que se llame sin parmetros retorna un arreglo con todos los componentes del formulario en una sola lista."
      end

      operation 1238149 "removeComponent"
	preserve_cpp_body_indent public return_type class_ref 486021 // Form
	nparams 1
	  param in name "name" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Quita un componente del formulario.
@param string name el nombre del componente a quitar.

@result Form El formulario sin el componente."
      end

      classrelation 724613 // <dependency>
	relation 721285 -_->
	  a default
	    php "${type}"
	    classrelation_ref 724613 // <dependency>
	  b parent class_ref 506373 // HiddenComponent
      end

      operation 1055237 "getFormTemplate"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->formTemplate;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 652293 // formTemplate
      end

      operation 1055365 "setFormTemplate"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->formTemplate = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 652293 // formTemplate
      end

      operation 1055493 "getSuccessTemplate"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->successTemplate;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 652421 // successTemplate
      end

      operation 1055621 "setSuccessTemplate"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->successTemplate = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 652421 // successTemplate
      end

      operation 1089029 "getTarget"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el target del Form.

@return string el target que se refrescar al hacer el submit del form."
      end

      operation 1089157 "setTarget"
	preserve_cpp_body_indent public return_type class_ref 486021 // Form
	nparams 1
	  param in name "target" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura el al form para que refresque la capa (div) con el nombre indicado.

@param string $target el nombre del div que ser refrescado con el fruto del submit del formulario.

@return Form el formulario configurado"
      end

      operation 1090437 "getContext"
	force_body_gen const cpp_inline public return_type class_ref 417029 // ApplicationContext
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->context;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 638085 // context
      end

      operation 1090565 "setContext"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" type class_ref 417029 // ApplicationContext
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->context = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 638085 // context
      end

      operation 1131781 "getOpenTag"
	force_body_gen const cpp_inline public explicit_return_type "bool"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->openTag;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 718725 // openTag
	comment "Recupera el valor del flag de openTag

@return boolean retorna un TRUE si el form va a escribir el tag <form> y FALSE sino."
      end

      operation 1131909 "setOpenTag"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "bool"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->openTag = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 718725 // openTag
	comment "Configura el flag de escritura del tag <form>.

@param boolean $value un TRUE para que escriba el tag (valor predeterminado) y un FALSE para que no lo escriba.
@return Form el formulario modificado."
      end

      operation 1192197 "getCloseTag"
	force_body_gen const cpp_inline public explicit_return_type "bool"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->closeTag;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 793861 // closeTag
	comment "Recupera el valor del flag de openTag

@return boolean retorna un TRUE si el form va escribir el </form> y FALSE sino."
      end

      operation 1192325 "setCloseTag"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "bool"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->closeTag = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 793861 // closeTag
	comment "Configura el flag de escritura del tag </form>.

@param boolean $value un TRUE para que escriba el tag (valor predeterminado) y un FALSE para que no lo escriba.
@return Form el formulario modificado."
      end

      operation 1233669 "getPrefix"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->prefix;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 807685 // prefix
	comment "Recupera el prefijo configurado.

@return string Una cadena de texto con el prefijo configurado"
      end

      operation 1233797 "setPrefix"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->prefix = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 807685 // prefix
	comment "Configura el prefijo de la generacin de nombres.

@param string $value una cadena de texto con el prefijo a anteponer a los nombres de componentes.

@return Form El formulario que ahora tiene el valor del prefijo configurado."
      end

      operation 1233925 "getSuffix"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->suffix;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 807813 // suffix
	comment "Recupera el sufijo configurado.

@return string Una cadena de texto con el sufijo configurado"
      end

      operation 1234053 "setSuffix"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->suffix = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 807813 // suffix
	comment "Configura el sufijo de la generacin de nombres.

@param string $value una cadena de texto con el sufijo a anteponer a los nombres de componentes.

@return Form El formulario que ahora tiene el valor del sufijo configurado."
      end

      operation 1034757 "validate"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Realiza una verificacin sobre los parmetros de POST y GET (depende qu se consigne en el Form) segn las definiciones de campos que se hayan realizado.

@return TRUE|array Devuelve un valor TRUE si todas las definiciones de componentes tienen una contraparte vlida y acorde a las validaciones impuestas. En caso que algo falle retorna una matrz con el siguiente formato:

array (
	0 = > array (
		Component, array(\"Error 1\", \"Error 2\")
		)
	...
)
"
      end

      operation 1075333 "loadValues"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Carga en los componentes los valores que encuentren correspondencia con alguno de los parmetros pasados recibidos del usuario.

@return boolean Retorna TRUE si todo anduvo bien. FALSE de otra manera."
      end

      operation 953989 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1237125 "getValuesFromObject"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "object" type class_ref 141317 // ORMObject
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura los valores predeterminados del form con los atributos correspondientes del objeto pasado por parmetro, usando para ello las definiciones de los \"maps\" de cada componente.
El mtodo asume que todo est bien definido. No contempla relaciones.

@param Object $object el objeto sobre el cual se deben basar los campos del formulario.

@return boolean En caso que todo salga bien devuelve TRUE y si sucedio un error FALSE."
      end

      operation 1252101 "toURL"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 3
	  param in name "includeAction" explicit_type "bool"
	    defaultvalue "false"
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Convierte la actual representacin del formulario a un su representacin en URL de los parmetros. Se adjunta el parmetro $includeAction A FIN DE QUE ESTE CONTEMPLADO PARA SU FUTURA IMPLEMENTACIN.

@param boolean $includeAction indica si se desea sacar una URL completa o slo la parte de los parmetros con valor.
@param string $prefix el prefijo de los nombres generados.
@param string $suffix el sufijo de los nombres generados.
@return string La URL o los parmetros (segn $onlyParams) en formato string"
      end

      operation 1293957 "deploy"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Solicita al formulario que realice la tarea para la que est configurado.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo. Puede omitirse si anteriormente se llam a Form::setContext()
@param ORM $orm el ORM a usar

@return Renderable la pantalla que debe mostrar."
      end

      operation 1413253 "getFormType"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->formType;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 927365 // formType
	comment "Recupera el tipo de formulario.
@return String Una de las constantes predefinidas."
      end

      operation 1413381 "setFormType"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->formType = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 927365 // formType
	comment "Configura el tipo de formulario. Por el momento esto afecta la botonera nada ms.

@param string $value el tipo de formulario a representar.

@return Form el formulario modificado."
      end

      operation 1665541 "updated"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "component" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Toma una serie de nombres de componentes que han sido actualizados recientemente.

@param string $component el nombre de componente, se puede pasar más de uno.

@return Form El objeto Form."
      end

      operation 1870341 "setAjaxAction"
	preserve_cpp_body_indent public return_type class_ref 486021 // Form
	nparams 1
	  param in name "function" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura la función que será invocada al enviar el formulario. La firma de dicha función es: function (form, validations, target)

@param string $function el nombre de la función

@return Form el formulario modificado"
      end

      operation 1870469 "getAjaxAction"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el nombre de la función que se llama cuando se submitea el formulario.

@return string El nombre de la función."
      end

      operation 163462 "calculateFormValidation"
	preserve_cpp_body_indent private explicit_return_type "string"
	nparams 2
	  param in name "list" explicit_type "array"
	  param inout name "showForm" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Calcula el texto que tiene que ir en el onsubmit del form.

@param array $list el array de los toArray de los items del form
@param bool $showForm si se muestra o no el form
@return string El texto que tiene que ir en el atributo onsubmit del form."
      end
    end

    class 532485 "ABMForm"
      abstract visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      attribute 593797 "class"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1234437 // getClass
	comment "@var string es el nombre de la clase sobre la que se modela el formulario, es opcional"
      end

      attribute 1966853 "definition"
	private type class_ref 236293 // ORMDefinition
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ${type} la definición de la clase pivot del formulario, para no tener que recuperarla a cada rato"
      end

      attribute 1960325 "hierarchy"
	private explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ${type} indica si la clase tiene o no un discriminador definido, es decir si tiene clases hijas"
      end

      attribute 638853 "orm"
	private type class_ref 167685 // ORM
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ORM la clase que gestiona las definiciones del objeto. Esta variable es de uso interno del Form."
      end

      classrelation 753285 // <generalisation>
	relation 749957 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 753285 // <generalisation>
	  b parent class_ref 486021 // Form
      end

      operation 1259781 "__construct"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "orm" type class_ref 167685 // ORM
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea un formulario de ABM

@param ORM $orm el ORM a usar
@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@return ABMForm la pantalla que debe mostrar.
"
      end

      operation 1259909 "setORM"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura el ORM a mano. Este ser pisado por Deploy().

@param ORM $value el ORM que se quiere emplear en caso de llamada directa a los mtodos fresh(), modify(), save() y delete().

@return ABMForm El formulario con el ORM configurado."
      end

      operation 1234437 "getClass"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->class;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 593797 // class
	comment "Recupera la clase pivot del formulario.

@return string El nombre de la clase que sirve de pivot al ABMForm"
      end

      operation 945413 "setClass"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "class" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura la clase base del formulario
@param string $class la clase sobre la que pivotea el formulario

@return Form El formulario configurado con la clase indicada"
      end

      operation 1035013 "setValuesToObject"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "object" type class_ref 141317 // ORMObject
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura los valores de POST/GET en los atributos adecuados del objeto pasado por parmetro, usando para ello las definiciones de los \"maps\" de cada componente y la \"class\" del Form.
Esta funcin integra el ORM con la lgica de formularios.

@param ORMObject $object el objeto sobre el cual se deben aplicar los cambios.

@return boolean En caso que todo salga bien devuelve TRUE y si sucedio un error FALSE."
      end

      operation 1055109 "getValuesFromObject"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "object" type class_ref 141317 // ORMObject
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura los valores predeterminados del form con los atributos correspondientes del objeto pasado por parmetro, usando para ello las definiciones de los \"maps\" de cada componente y la \"class\" del Form.
Esta funcin integra el ORM con la lgica de formularios.

@param ORMObject $object el objeto sobre el cual se deben basar los campos del formulario.

@return boolean En caso que todo salga bien devuelve TRUE y si sucedio un error FALSE."
      end

      operation 1082117 "validate"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Realiza una verificacin sobre los parmetros de POST y GET (depende qu se consigne en el Form) segn las definiciones de campos que se hayan realizado.

@return TRUE|array Devuelve un valor TRUE si todas las definiciones de componentes tienen una contraparte vlida y acorde a las validaciones impuestas. En caso que algo falle retorna una matrz con el siguiente formato:

array (
	0 = > array (
		Component, array(\"Error 1\", \"Error 2\")
		)
	...
)
"
      end

      operation 1235461 "completeValidations"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Mtodo de uso interno utilizado para completar las validaciones y nombres de los componentes.

@return ABMForm el formulario con la informacin de nombres y validaciones completada."
      end

      operation 1082245 "deploy"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	    defaultvalue "null"
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Solicita al formulario que realice la tarea para la que est configurado.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return Renderable la pantalla que debe mostrar."
      end

      operation 1209221 "fresh"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 2
	  param in name "context" type class_ref 417029 // ApplicationContext
	  param in name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Funcin invocada para crear una instancia del objeto que representa el formulario

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return boolean un TRUE si todo sali bien y un FALSE sino."
      end

      operation 1207301 "save"
	preserve_cpp_body_indent cpp_virtual public return_type class_ref 141317 // ORMObject
	nparams 2
	  param in name "context" type class_ref 417029 // ApplicationContext
	  param in name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Funcin invocada para guardar el objeto que representa el formulario.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return ORMObject el objeto ya guardado si todo sali bien y un FALSE sino."
      end

      operation 1207429 "modify"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 2
	  param in name "context" type class_ref 417029 // ApplicationContext
	  param in name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Funcin invocada para modificar el objeto que representa el formulario.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return boolean un TRUE si todo sali bien y un FALSE sino."
      end

      operation 1207557 "delete"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 2
	  param in name "context" type class_ref 417029 // ApplicationContext
	  param in name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Funcin invocada para borrar el objeto que representa el formulario.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return boolean un TRUE si todo sali bien y un FALSE sino."
      end

      operation 1871109 "checkAccess"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 4
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "orm" type class_ref 167685 // ORM
	  param in name "action" explicit_type "string"
	  param in name "id" explicit_type "mixed"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Esta función se encarga de validar si un usuario tiene acceso a trabajar con una cierta entidad. La intención es verificar en este paso que el usuario tiene permiso para crear, editar o borrar la entidad que solicitó.

@param ApplicationContext $context el contexto en el cual se mandó a ejecutar la acción. De aquí se puede obtener la información de User, Domain y Provider.
@param ORM $orm la instancia del ORM
@param string $action un texto que indica lo que se pretende hacer. Puede tomar valores de: 'NEW', 'MODIFY', 'SAVE' o 'DELETE'.
@param mixed $id el identificador de la entidad que se pasó por parámetro

@return boolean La función debe devolver True si el usuario puede realizar la acción o arrojar una excepción con la descripción del problema."
      end

      operation 2638469 "getType"
	preserve_cpp_body_indent public explicit_return_type "mixed"
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Función que retorna el valor que determina el tipo del objeto o null si el mismo no está determinado.
@return mixed El valor definido en ORMDefinition para el discriminador o null si el mismo aún no está determinado"
      end

      operation 2638597 "identifyClass"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 1
	  param in name "value" explicit_type "mixed"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Dado un valor de discriminador, identifica el nombre de la clase a la que corresponde y la configura.
@param ${t0} ${p0} el valor a analizar
@return ${type} el nombre de la clase"
      end
    end

    class 478085 "Layout"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 674053 // items (<directional aggregation>)
	relation 670853 o-->
	  a role_name "items" multiplicity "*" init_value "array()" protected
	    comment "@var array la lista de elementos que se esquematizan en el layout"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 674053 // items (<directional aggregation>)
	  b parent class_ref 477957 // Component
      end

      classrelation 667269 // <generalisation>
	relation 664069 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 667269 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      operation 953605 "addComponent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "element" type class_ref 477957 // Component
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega un componente al Layout

@param Component $element el elemento a agregar al layout

@return Layout el layout con el componente agregado."
      end

      operation 1034501 "&getComponent"
	preserve_cpp_body_indent public return_type class_ref 477957 // Component
	nparams 1
	  param in name "name" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el componente que responde al nombre especificado.

@param string $name el nombre del componente a recuperar.

@return Component|array El componente solicitado o NULL sino existe. En el caso que se llame sin parmetros retorna un arreglo con todos los componentes del formulario en una sola lista."
      end

      operation 1238277 "removeComponent"
	preserve_cpp_body_indent public return_type class_ref 478085 // Layout
	nparams 1
	  param in name "name" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Quita un componente del la formacin.
@param string name el nombre del componente a quitar.

@result Layout El layout sin el componente."
      end

      operation 938373 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1252357 "toURL"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una versin string del nombre del componente y de su valor. Slo sirve cuando ambos datos estn definidos.
@param string $prefix el prefijo de los nombres generados.
@param string $suffix el sufijo de los nombres generados.
@return string una porcin de URL que representa el componente y su valor o el string vaco si no tiene un value asignado o si no tiene un name."
      end
    end

    class 486149 "GridLayout"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      attribute 624005 "gridItems"
	private explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array mantiene una coleccin de los items segn la estructura impuesta por el GridLayout"
      end

      attribute 601349 "rows"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la mxima cantidad de filas del layout"
      end

      attribute 601605 "cols"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int el nmero mximo de columnas que tiene la grilla del layout"
      end

      classrelation 667141 // <generalisation>
	relation 663941 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 667141 // <generalisation>
	  b parent class_ref 478085 // Layout
      end

      operation 938245 "__construct"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param in name "rows" explicit_type "int"
	  param in name "cols" explicit_type "int"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea una distribucin en grilla de las dimensiones indicadas.

@param int $rows la cantidad de filas de la grilla
@param int $cols la cantidad de columnas de la grilla

@return GridLayout La instancia de GridLayout "
      end

      operation 938117 "addComponent"
	preserve_cpp_body_indent public return_type class_ref 486149 // GridLayout
	nparams 8
	  param in name "element" type class_ref 477957 // Component
	  param in name "row" explicit_type "int"
	    defaultvalue "null"
	  param in name "col" explicit_type "int"
	    defaultvalue "null"
	  param in name "horizontalSize" explicit_type "int"
	    defaultvalue "1"
	  param in name "verticalSize" explicit_type "int"
	    defaultvalue "1"
	  param in name "halign" explicit_type "string"
	    defaultvalue "'left'"
	  param in name "valign" explicit_type "string"
	    defaultvalue "'middle'"
	  param in name "size" explicit_type "string"
	    defaultvalue "null"
	nexceptions 1
	  explicit_exception "Exception"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}, ${p6}${v6}, ${p7}${v7}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega un componente al layout

@param Component $element el componente a agregar
@param int $row la fila del layout donde se ubica el componente
@param int $col la columna del layout donde se ubica el componente
@param int $horizontalSize el tamao que ocupa el componente en la horizontal
@param int $verticalSize el tamao que ocupa el componente en la vertical
@param string $halign la alineacin de los componentes en la celda respecto al eje X
@param string $valign la alineacin de los componentes en la celda respecto al eje Y
@param string $size el ancho
@return GridLayout El mismo objeto GridLayour modificado."
      end

      operation 1034629 "&getComponent"
	preserve_cpp_body_indent public return_type class_ref 477957 // Component
	nparams 1
	  param in name "name" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el componente que responde al nombre especificado.

@param string $name el nombre del componente a recuperar.
@return Component|array El componente solicitado o NULL sino existe. En el caso que se llame sin parmetros retorna un arreglo con todos los componentes del formulario en una sola lista."
      end

      operation 1238405 "removeComponent"
	preserve_cpp_body_indent public return_type class_ref 486149 // GridLayout
	nparams 1
	  param in name "name" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Quita un componente del layout
@param string name el nombre del componente a quitar.

@result GridLayout El formulario sin el componente."
      end

      operation 946437 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      classrelation 680709 // <dependency>
	relation 677509 -_->
	  a default
	    php "${type}"
	    classrelation_ref 680709 // <dependency>
	  b parent class_ref 492805 // EmptyComponent
      end

      operation 1252485 "toURL"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una versin string del nombre del componente y de su valor. Slo sirve cuando ambos datos estn definidos.
@param string $prefix el prefijo de los nombres generados.
@param string $suffix el sufijo de los nombres generados.
@return string una porcin de URL que representa el componente y su valor o el string vaco si no tiene un value asignado o si no tiene un name."
      end
    end

    class 492933 "TemplateInterface"
      abstract visibility package stereotype "interface"
      cpp_decl ""
      java_decl "${comment}${@}${visibility}interface ${name}${extends} {
${members}}
"
      php_decl "${comment}${visibility}interface ${name} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
      explicit_switch_type ""
      
      operation 953861 "toArray"
	abstract preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "\"\""
	  param in name "suffix" explicit_type "string"
	    defaultvalue "\"\""
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 595973 "ComposedForm"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Es una clase de utilería que permite hacer un juego de mostrar o no un formulario en base al resultado de otro."
      attribute 808325 "session_identifier"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string un identificador aleatorio que se remite con el formulario."
      end

      classrelation 825733 // defaultForm (<directional composition>)
	relation 820229 *-->
	  a role_name "defaultForm" multiplicity "1" private
	    comment "@var Form el formulario que se muestra an cuando no hay condiciones"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 825733 // defaultForm (<directional composition>)
	  b parent class_ref 486021 // Form
	get_oper operation_ref 1192453 // getDefaultForm
	set_oper operation_ref 1192581 // setDefaultForm
      end

      classrelation 825989 // conditions (<directional aggregation>)
	relation 820485 o-->
	  a role_name "conditions" multiplicity "*" private
	    comment "@var array la lista de condiciones y sus respectivos formularios."
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 825989 // conditions (<directional aggregation>)
	  b parent class_ref 596101 // FormCondition
      end

      operation 1192453 "getDefaultForm"
	force_body_gen const cpp_inline public return_type class_ref 486021 // Form
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->defaultForm;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_relation classrelation_ref 825733 // defaultForm (<directional composition>)
	comment "Recupera el formulario principal

@return Form el formulario predeterminado"
      end

      operation 1192581 "setDefaultForm"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" type class_ref 486021 // Form
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->defaultForm = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_relation classrelation_ref 825733 // defaultForm (<directional composition>)
	comment "Configura el formulario predeterminado

@param Form $value el formulario a mostrar an cuando no haya condiciones cumplidas.

@return ComposedForm la instancia debidamente configurada"
      end

      operation 1193349 "addCondition"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 5
	  param in name "rule" explicit_type "string"
	  param in name "class" explicit_type "string"
	  param in name "final" explicit_type "bool"
	  param in name "tests" explicit_type "array"
	  param in name "initFunction" explicit_type "Closure"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea un objeto que es capaz de decidir si debe o no mostrar un formulario en base a un conjunto de condiciones.
Es de mencionar que si el form es un ABMForm entonces se asume que para pasar al siguiente formulario se requiere que ste primero se haya GUARDADO con xito. Es decir que Form::save() se ejecute correctamente.
@param string $rule el nombre de la regla. Posteriormente a su definicin podr ser utilizada por otras reglas a travs de la condicin: <nombreRegla>.success o <nombreRegla>.fail
@param string $class la clase del formulario que se debe exhibir cuando se cumplen las condiciones
@param boolean $final un valor booleano que indica si se trata de un formulario final o no
@param array $tests un arreglo donde cada tem tiene la forma ('componente'=>'valor') y se emplea para determinar si se debe o no mostrar el formulario
@param Closure $initFunction la funcion de inicializacin del form. Recibe el form anterior y el form a mostrar luego del loadValues()

@return ComposedForm La instancia de ComposedForm con la condicin agregada."
      end

      operation 1237381 "prepareSession"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Levanta la sesin para el Form activo.

@return array El arreglo con los status correspondientes a esta sesin."
      end

      operation 1237509 "getValidsForms"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 3
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "status" explicit_type "Array"
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera un arreglo de los formularios que son vlidos para mostrarse segn los parmetros del contexto y el status de la sesin.
@param ApplicationContext $context el contexto en el que se da la validacin
@param array $status el arreglo con los datos de los estados actuales de los formularios
@param ORM $orm el manejador de objetos pasado por parmetro. Requerido para los ABMForm.

@return array La lista de formularios que cumplen las condiciones actuales"
      end

      operation 1237637 "prepareForms"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 1
	  param in name "formConditions" explicit_type "array"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Dada una lista de condiciones las prepara para que se exhiban en cadena. Es decir configura los forms internos para abran o cierren los tags de \"form\" y para que incluyan un hidden con la informacin de sesin.

@param array $formConditions Un arreglo de condiciones.

@return array el arreglo de los formularios de las condiciones ya preparados."
      end

      operation 1193093 "deploy"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Solicita al formulario que realice la tarea para la que est configurado.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar
@return Renderable la pantalla que debe mostrar."
      end
    end

    class 596101 "FormCondition"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 825861 // form (<directional composition>)
	relation 820357 *-->
	  a role_name "form" multiplicity "1" private
	    comment "@var Form el formulario que se debe mostrar en caso que se cumpla la condicin"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 825861 // form (<directional composition>)
	  b parent class_ref 486021 // Form
      end

      attribute 793989 "final"
	private explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean indica si el formulario es un formulario final o no."
      end

      attribute 794117 "tests"
	private explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array un arreglo donde se almacenan las condiciones a verificar para mostrar el formulario."
      end

      attribute 808197 "needSave"
	private explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean un valor booleano que indica si este formulario debe ser comiteado con xito antes del siguiente paso."
      end

      attribute 809349 "ruleName"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1237253 // getRuleName
	comment "@var string el nombre de la regla"
      end

      attribute 844805 "initFunction"
	private explicit_type "Closure"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1259653 // getInitFunction
	comment "@var Closure la funcin de inicializacin del formulario"
      end

      attribute 844933 "class"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la clase del formulario a instanciar"
      end

      operation 1192837 "__construct"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 6
	  param in name "ruleName" explicit_type "string"
	  param in name "class" explicit_type "string"
	  param in name "final" explicit_type "bool"
	  param in name "needSave" explicit_type "bool"
	  param in name "tests" explicit_type "array"
	  param in name "initFunction" explicit_type "Closure"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea un objeto que es capaz de decidir si debe o no mostrar un formulario en base a un conjunto de condiciones.

@param string $ruleName el nombre de la regla
@param string $class la clase del formulario que se debe exhibir cuando se cumplen las condiciones.
@param boolean $final un valor booleano que indica si se trata de un formulario final o no.
@param boolean $needSave indica si este formulario requiere realizar una operacin de \"save\" exitosa antes de continuar.
@param array $tests un arreglo donde cada tem tiene la forma ('componente'=>'valor') y se emplea para determinar si se debe o no mostrar el formulario.
@param Closure $initFunction la funcin de inicializacin

@return ComposedForm Una instancia de ComposedForm."
      end

      operation 1199877 "isFinal"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Indica si la condicin es para un formulario final.

@return boolean Devuelve TRUE si el formulario es el definitivo y FALSE si se trata de un formulario para otra instancia de seleccin."
      end

      operation 1200005 "getForm"
	preserve_cpp_body_indent public return_type class_ref 486021 // Form
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	    defaultvalue "null"
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve el Form de la condicin. El primer llamado que se hace crea el form, los sucesivos pueden omitir dicho parmetro.

@param ApplicationContext $context el contexto en el cual se instanciar el formulario.
@param ORM $orm el manejador de objetos a emplear para la inicializacin.

@return Form El formulario de la condicin."
      end

      operation 1192965 "test"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 3
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "status" explicit_type "array"
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Evalua si el formulario debe o no ser mostrado.

@param ApplicationContext $context el contexto en el que se evaluan los tests.
@param array $status un arreglo que refleja el estado de los otros formularios.
@param ORM $orm el manejador de objetos. Es requerido si se trata de ABMForms.

@return boolean Un TRUE si el formulario debe ser mostrado y un FALSE sino."
      end

      operation 1235589 "needSave"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve la configuracin de usuario de invocar al mtodo save.

@return boolean Un TRUE si el form require una operacin de guardado exitosa antes de continuar, FALSE sino..."
      end

      operation 1237253 "getRuleName"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->ruleName;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 809349 // ruleName
	comment "Retorna el nombre de regla configurado.

@return string El nombre de la regla que representa el objeto."
      end

      operation 1259653 "getInitFunction"
	force_body_gen const cpp_inline public explicit_return_type "Closure"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->initFunction;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 844805 // initFunction
	comment "@return Closure la funcin de inicializacin del form"
      end

      operation 1266437 "clear"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Resetea la condicin como para ser evaluada de cero.
@return FormCondition"
      end

      operation 1266565 "init"
	preserve_cpp_body_indent public return_type class_ref 596101 // FormCondition
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "previusForm" type class_ref 486021 // Form
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Inicializa el formulario en base al resultado del formulario previo
@param ApplicationContext $context el contexto en el que se desarrolla la accin
@param Form $previusForm el formulario de la regla que se evalu previamente en forma exitosa o el default.
@return boolean Devuelve TRUE si todo salio bien y FALSE sino."
      end
    end

    classdiagram 186885 "Web List Class Diagram"
      draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
      size A3-Landscape
    end

    class 499461 "WebList"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Inicialimente se iba a llamar List, pero debido a que PHP posee un comando navito \"list()\" es imposible usar el nombre. Slo se podra con el uso de namespaces, pero en PHP 5.2.16 no est disponible tal caracterstica."
      classrelation 694789 // <realization>
	relation 691461 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 694789 // <realization>
	  b parent class_ref 492933 // TemplateInterface
      end

      classrelation 695173 // columns (<directional aggregation>)
	relation 691845 o-->
	  a role_name "columns" multiplicity "1..*" private
	    comment "@var array la lista de columnas que conforman el listado"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 695173 // columns (<directional aggregation>)
	  b parent class_ref 499589 // Column
      end

      classrelation 695301 // actions (<directional aggregation>)
	relation 691973 o-->
	  a role_name "actions" multiplicity "*" private
	    comment "@var array las acciones globales del listado"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 695301 // actions (<directional aggregation>)
	  b parent class_ref 499717 // ActionButton
      end

      classrelation 695557 // filter (<unidirectional association>)
	relation 692229 --->
	  a role_name "filter" multiplicity "0..1" private
	    comment "@var Form un objeto que representa el formulario para bsquedas"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 695557 // filter (<unidirectional association>)
	  b parent class_ref 486021 // Form
	get_oper operation_ref 1007365 // getFilter
	set_oper operation_ref 1007493 // setFilter
      end

      attribute 685317 "context"
	protected type class_ref 417029 // ApplicationContext
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ApplicationContext el contexto pasado a deploy()"
      end

      attribute 685061 "listFunction"
	private explicit_type "Closure"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var Closure la funcin que retorna las filas del listado. VER setListFunction() para una mejor descripcin."
      end

      attribute 685445 "listTemplate"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1089669 // getListTemplate
	set_oper operation_ref 1089797 // setListTemplate
	comment "@var string el template de listado a utilizar"
      end

      attribute 699013 "rowTemplate"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1111429 // getRowTemplate
	set_oper operation_ref 1111557 // setRowTemplate
	comment "@var string el nombre del template de renderizado de fila predeterminado"
      end

      attribute 692229 "rowCount"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	set_oper operation_ref 1097605 // setRowCount
	comment "@var int el nmero de filas del listado"
      end

      attribute 692357 "pageRows"
	protected explicit_type ""
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1097733 // getPageRows
	set_oper operation_ref 1097861 // setPageRows
	comment "@var int la cantidad de filas que se muestran por pgina. En forma predeterminada se muestran las configuradas por el provider."
      end

      attribute 692485 "currentPage"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1097989 // getCurrentPage
	comment "@var int la pgina actual que se est listando."
      end

      attribute 685189 "orm"
	protected type class_ref 167685 // ORM
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ORM la instancia del ORM pasada al deploy()"
      end

      attribute 699141 "sort"
	protected explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array De uso interno, almacena los parmetros de ordenamiento del post."
      end

      attribute 865413 "manager"
	protected type class_ref 416901 // AbstractManager
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var AbstractManager El Manager en el cual fue creado el listado."
      end

      attribute 1066885 "emptyMessage"
	protected explicit_type "string"
	init_value "'NO SE ENCONTRARON DATOS'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1560965 // getEmptyMessage
	set_oper operation_ref 1561093 // setEmptyMessage
	comment "@var string un texto que se mostrará en caso que el listado no tenga filas para mostrar."
      end

      operation 1090181 "__construct"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "manager" type class_ref 416901 // AbstractManager
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea una instancia de WebList.
@param AbstractManager $manager El manager en el cual se est creando el listado.

@return WebList una instancia nueva de la clase."
      end

      operation 1007493 "setFilter"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" type class_ref 486021 // Form
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->filter = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_relation classrelation_ref 695557 // filter (<unidirectional association>)
	comment "Estable el uso de un formulario como herramienta de listado.

@param Form $value una instancia de la clase Form.
@return List El listado con el formulario configurado."
      end

      operation 1007365 "getFilter"
	force_body_gen const cpp_inline public return_type class_ref 486021 // Form
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->filter;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_relation classrelation_ref 695557 // filter (<unidirectional association>)
	comment "@return Form recupera el formulario configurado como filtro o null si es que el listado no dispone de dicha opcin."
      end

      operation 960645 "addColumn"
	preserve_cpp_body_indent public return_type class_ref 499461 // WebList
	nparams 1
	  param in name "column" type class_ref 499589 // Column
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega una columna al listado.

@param Column $column la columna a agregar al listado

@return List el listado al que se le ha agregado la columna indicada."
      end

      operation 1014021 "getColumns"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "@return array Recupera un arreglo con las columnas definidas para el listado."
      end

      operation 1014149 "addAction"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "action" type class_ref 499717 // ActionButton
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega un botn general al listado.

@param ActionButton $action Una accin que se desea ejecutar independientemente de las filas del listado.

@return WebList El listado con la accin agregada"
      end

      operation 1014277 "getActions"
	preserve_cpp_body_indent public explicit_return_type "arrray"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "@return Recupera un arreglo con todas las acciones configuradas globalmente al listado"
      end

      operation 1089413 "setListFunction"
	preserve_cpp_body_indent public return_type class_ref 499461 // WebList
	nparams 1
	  param in name "function" explicit_type "Closure"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Establece cul es la funcin que se invoca para obtener los datos del listado.

@param Closure $function Una funcin que toma por parmetros el objeto de Listado, el contexto (Context) y una instancia del ORM. Adicionalmente recibe como parmetros la fila DESDE la cual se debe listar (para el paginado) y la fila HASTA la que se debe listar. El programador debera tener en cuenta estos dos lmites, aunque si devuelve ms filas el framework se limitar a recuperar slo las que necesita.

@return WebList la instancia modificada."
      end

      operation 1097605 "setRowCount"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "int"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->rowCount = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 692229 // rowCount
	comment "Configura el nmero de filas totales del listado.

@param int $value El nmero de filas.

@return WebList El WebList modificado."
      end

      operation 1097733 "getPageRows"
	force_body_gen const cpp_inline public explicit_return_type ""
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->pageRows;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 692357 // pageRows
	comment "Recupera la cantidad de filas por pgina.

@return int La cantidad de registros que se muestran en una pgina del listado."
      end

      operation 1097861 "setPageRows"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type ""
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->pageRows = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 692357 // pageRows
	comment "Configura la cantidad de filas por pgina que muestra el listado.

@param int $value el nmero de filas por pgina que se desea mostrar.

@return WebList El listado modificado."
      end

      operation 1089669 "getListTemplate"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->listTemplate;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 685445 // listTemplate
	comment "Recupera el template de listado configurado en el WebList.

@return string El template que se utiliza para renderizar una lista de tems."
      end

      operation 1089797 "setListTemplate"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->listTemplate = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 685445 // listTemplate
	comment "Establece cul es el template para mostrar la lista de tems del listado.

@param string $value el nombre del template que sirve para renderizar un listado.

@return WebList El listado modificado."
      end

      operation 1111429 "getRowTemplate"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->rowTemplate;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 699013 // rowTemplate
	comment "Recupera el template de fila configurado.

@return string El template que se utiliza para renderizar una fila"
      end

      operation 1111557 "setRowTemplate"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->rowTemplate = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 699013 // rowTemplate
	comment "Establece cul es el template para mostrar una fila del listado.

@param string $value el nombre del template que sirve para renderizar la fila del listado.

@return WebList El listado modificado."
      end

      operation 1097989 "getCurrentPage"
	force_body_gen const cpp_inline public explicit_return_type "int"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->currentPage;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 692485 // currentPage
	comment "Recupera la pgina actual del listado.

@return int El nmero de pgina que se est listando."
      end

      operation 1118213 "getSort"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera los parmetros de ordenamiento seleccionados por el usuario.

@return array Retorna un arreglo indexado por el maps de la columna (si son varios elementos del maps se concatenan con \"_\")"
      end

      operation 960517 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1089285 "deploy"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la instancia necesaria para renderizar del listado.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return Renderable el objeto que representa el listado o la seccin del listado que se debe desplegar."
      end

      operation 1090309 "getValueOf"
	preserve_cpp_body_indent public explicit_return_type "mixed"
	nparams 1
	  param in name "name" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Esta funcin funciona slo si el listado tiene un form definido. Es un wrapper a la funcin getValueOf() del form.

@parma string name el nombre del componente cuyo valor se quiere acceder.

@return mixed el valor que tenga el elemento."
      end

      operation 1146629 "limitQuery"
	preserve_cpp_body_indent public return_type class_ref 499461 // WebList
	nparams 1
	  param inout name "query" type class_ref 389637 // ORMQuery
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Aplica las limitaciones y condiciones de ordenamiento necesarias a la Query.

@param ORMQuery $query la consulta principal de un listado. Luego de que se le apliquen los filtros, los resultados pueden an seguir siendo modificados.

@return WebList el listado que aplic las limitantes"
      end

      operation 1153413 "applyFilter"
	preserve_cpp_body_indent public return_type class_ref 499461 // WebList
	nparams 1
	  param inout name "query" type class_ref 389637 // ORMQuery
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Toma una query y asumiendo que el filtro se haya confeccionado usando en los maps los nombres que deben ir en la propia query, los agrega.

@param ORMQuery $query la consulta a agregarle los filtros.

@return WebList el listado que modific la query."
      end

      classrelation 791045 // <dependency>
	relation 786437 -_->
	  a default
	    php "${type}"
	    classrelation_ref 791045 // <dependency>
	  b parent class_ref 389637 // ORMQuery
      end

      operation 1560965 "getEmptyMessage"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->emptyMessage;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 1066885 // emptyMessage
	comment "Recupera el mensaje que se muestra cuando no hay filas para mostrar en el listado.

@return string El texto del mensaje"
      end

      operation 1561093 "setEmptyMessage"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->emptyMessage = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 1066885 // emptyMessage
	comment "Configura el mensaje que se muestra cuando no hay filas para mostrar en el listado.

@param string $value el texto que se quiere mostrar.
@return WebList El listado con el texto para vacíos configurado."
      end

      classrelation 1092997 // <dependency>
	relation 1077381 -_->
	  a package
	    php "${type}"
	    classrelation_ref 1092997 // <dependency>
	  b parent class_ref 416901 // AbstractManager
      end

      operation 2789509 "setDefaultSort"
	preserve_cpp_body_indent public return_type class_ref 499461 // WebList
	nparams 2
	  param in name "columnName" explicit_type "string"
	  param in name "direction" explicit_type "string"
	    defaultvalue "'ASC'"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura el ordenamiento predeterminado del listado (sólo por 1 columna).

@param ${t0} ${p0} el nombre de la columna
@param ${t1} ${p1} la dirección: ASC (default) o DESC 

@return ${type} El WebList modificado"
      end
    end

    class 499589 "Column"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 694917 // <realization>
	relation 691589 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 694917 // <realization>
	  b parent class_ref 492933 // TemplateInterface
      end

      classrelation 695429 // actions (<directional aggregation>)
	relation 692101 o-->
	  a role_name "actions" multiplicity "*" private
	    comment "@var array acciones que afectan a la fila solicitada"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 695429 // actions (<directional aggregation>)
	  b parent class_ref 499717 // ActionButton
      end

      attribute 608389 "title"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el ttulo de la columna. Puede ser HTML"
      end

      attribute 608517 "maps"
	private explicit_type "mixed"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string|array el nombre de una o ms columnas del conjunto de resultados que se emplearn en la generacin del contenido de cada celda de la columna"
      end

      attribute 608645 "hint"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1006085 // getHint
	set_oper operation_ref 1006213 // setHint
	comment "@var string una descripcin de qu es la informacin que se exhibe en la columna."
      end

      attribute 608773 "hide"
	private explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1006341 // isHide
	set_oper operation_ref 1006469 // setHide
	comment "@var boolean indica si la columna debe ponerse como invisible"
      end

      attribute 608901 "template"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1006597 // getTemplate
	set_oper operation_ref 1006725 // setTemplate
	comment "@var string una cadena de texto optativa que sirve para especificar renderizados especiales de las variables del \"maps\". Usa sintaxis TWIG"
      end

      attribute 609029 "sortable"
	private explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1006853 // isSortable
	set_oper operation_ref 1006981 // setSortable
	comment "@var boolean indica si la columna puede ser ordenada automticamente. En caso de ser TRUE genera que se ubique un botn en el header de la columna que al apretarlo alterna la consulta entre DESC y ASC"
      end

      classrelation 695685 // <realization>
	relation 692357 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 695685 // <realization>
	  b parent class_ref 499845 // ActionInterface
      end

      attribute 609797 "action"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el cdigo de la accin del sistema"
      end

      attribute 609925 "mode"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el modo de ejecucin de la accin: inline, popup, inline-popup"
      end

      attribute 610053 "params"
	private explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array un arreglo clave valor con los parmetros a pasar a la accin"
      end

      attribute 610181 "icon"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el cono de la accin"
      end

      attribute 610309 "refresh"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la tcnica de refresco luego de ejecutada la accin: none, list, row"
      end

      attribute 705669 "name"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1118341 // getName
	set_oper operation_ref 1118469 // setName
	comment "@var string El nombre nico de la columna. Usado para referenciarla internamente y por las acciones de ordenamiento."
      end

      attribute 718853 "exportable"
	private explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1132037 // getExportable
	set_oper operation_ref 1132165 // setExportable
	comment "@var boolean indica si la columna debe mostrarse o no en las exportaciones."
      end

      operation 1206789 "__construct"
	preserve_cpp_body_indent public return_type class_ref 477957 // Component
	nparams 8
	  param in name "title" explicit_type "string"
	    defaultvalue "null"
	  param in name "maps" explicit_type "string|array"
	    defaultvalue "null"
	  param in name "sortable" explicit_type "bool"
	    defaultvalue "false"
	  param in name "template" explicit_type "string"
	    defaultvalue "null"
	  param in name "exportable" explicit_type "bool"
	    defaultvalue "true"
	  param in name "action" explicit_type "string"
	    defaultvalue "null"
	  param in name "actions" explicit_type "array"
	    defaultvalue "null"
	  param in name "hide" explicit_type "bool"
	    defaultvalue "false"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}, ${p6}${v6}, ${p7}${v7}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea una columna
@param string $title el ttulo de la columna
@param string|array $maps el o los campos que se visualizarn en la columna
@param boolean $sortable si la columna se puede ordenar pasar TRUE
@param string $template el template a emplear
@param boolean $exportable indica si la columna se puede exportar.
@param string $action la accin que se ejecuta al hacer clic en el contenido de la celda
@param array $actions las acciones especficas de la fila.
@param boolean $hide Decide si oculta la columna.
@return Column La columna nueva"
      end

      operation 974213 "setAction"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "action" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura el cdigo de la accin a ejecutar

@param string $action el cdigo de la accin

@return ActionInterface la accin modificada"
      end

      operation 991237 "getAction"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la accin configurada.

@return string el cdigo de la accin"
      end

      operation 974341 "setMode"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "mode" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "El modo de ejecucin de la accin.

@param string $mode la forma en la cual la accin es invocada. Puede ser:
<ul><li>none, la accin se enva a ejecutar y no requiere retorno al usuario</li>
    <li>inline, la accin se ejecuta como un link</li>
    <li>popup, el resultado de la accin se vuelca en un popup</li>
    <li>inline-popup, el resultado de la accin se devuelve en una ventana hecha con javascript y DOM</li>
</ul>"
      end

      operation 991365 "getMode"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el modo de ejecucin

@return string el modo de ejecucin de la accin"
      end

      operation 974469 "setParams"
	preserve_cpp_body_indent public return_type class_ref 499845 // ActionInterface
	nparams 1
	  param in name "params" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura parmetros adicionales para la accin ejecutada.

@params string $params los parmetros a pasar a la accin

@return ActionInterface el objeto con los parmetros modificados"
      end

      operation 991493 "getParams"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve los parmetros adicionales.

@return string los parmetros adicionales que se hayan configurado en la accin"
      end

      operation 974597 "setIcon"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "icon" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "El cono para la accin
@param string $icon el icono a configurar en la accin
@return ActionInterface el objeto configurado con el cono seleccionado"
      end

      operation 991621 "getIcon"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve la imagen de la accin.

@return string recupera la imagen de la accin"
      end

      operation 974725 "setRefresh"
	preserve_cpp_body_indent public return_type class_ref 499845 // ActionInterface
	nparams 1
	  param in name "refresh" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura el esquema de refresco de la accin

@param string $refresh el modo de refresco de la accin
@return ActionInterface el objeto con el mtodo de refresco seleccionado"
      end

      operation 991749 "getRefresh"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el mtodo de refresco de la accin

@return string recupera el mtodo de refresco de la accin"
      end

      operation 999173 "setTitle"
	preserve_cpp_body_indent public return_type class_ref 499589 // Column
	nparams 1
	  param in name "title" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura el ttulo de la columna.

@param string $title el ttulo que se desea asignar a la columna
@return Column la columna modificada"
      end

      operation 999301 "getTitle"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el ttulo de la columna

@return string el ttulo de la columna"
      end

      operation 999429 "setMaps"
	preserve_cpp_body_indent public return_type class_ref 499589 // Column
	nparams 1
	  param in name "maps" explicit_type "mixed"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Indica la/s clave/s de columna/s a utilizar en la generacin del contenido de la celda.

@param string|array $maps el nombre de la columna de datos o un arreglo con los nombres de columnas de datos a renderizar.

@return Column la columna modificada."
      end

      operation 999557 "getMaps"
	preserve_cpp_body_indent public explicit_return_type "mixed"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera las columnas de datos que se mapean en el contenido de la celda.

@return string|array El nombre de la columna de datos que se usa para generar el contenido de cada celda o un arreglo con varios nombres usados a tal fin."
      end

      operation 1006213 "setHint"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->hint = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 608645 // hint
	comment "Configura el texto de ayuda/accesibilidad de la columna.

@param string $value el hint a setear.

@return Column la columna modificada"
      end

      operation 1006085 "getHint"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->hint;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 608645 // hint
	comment "Retorna el texto de ayuda/explicativo de la columna

@return string Una cadena que sirve para identificar la misin de la columna"
      end

      operation 1006469 "setHide"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "bool"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->hide = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 608773 // hide
	comment "Indica si la columna debe o no ser visible.

@param boolean True para indicar que la columna se dibuje oculta.

@return Column La columna con el flag cambiado"
      end

      operation 1118341 "getName"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->name;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 705669 // name
	comment "Recupera el nombre de la columna.

@return string Devuelve un string con el nombre de la columna."
      end

      operation 1118469 "setName"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->name = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 705669 // name
	comment "Configura el nombre interno de la columna.

@param string $value el nombre que para bautizar la columna. Este nombre es utilizado internamente por el sistema de ordenamiento.

@return Column La columna con el nombre configurado."
      end

      operation 1006341 "isHide"
	force_body_gen const cpp_inline public explicit_return_type "bool"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->hide;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 608773 // hide
	comment "Retorna si la columna se renderiza con display:none

@return boolean Un TRUE si la columna es invisible"
      end

      operation 1006725 "setTemplate"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->template = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 608901 // template
	comment "Permite personalizar la forma en que se renderiza una celda.

@param string $value una cadena de texto que sigue las pautas y formatos de los templates TWIG. Soporta, obviamente, HTML y es posible acceder a las variables del maps directamente.

@return Column la columna con el template configurado"
      end

      operation 1006597 "getTemplate"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->template;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 608901 // template
	comment "Recupera el template de celda que est empleando la columna.

@return string Un texto con el template que actualmente usa la columna o null si se trata de la renderizacin predeterminada."
      end

      operation 1006981 "setSortable"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "bool"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->sortable = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 609029 // sortable
	comment "Establece si la columna puede o no ordenarse alternativamente por ASC y DESC.

@param boolean $value un TRUE para indicar que la columna se puede \"reordenar\".

@return Column La columna con los cambios aplicados."
      end

      operation 1006853 "isSortable"
	force_body_gen const cpp_inline public explicit_return_type "bool"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->sortable;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 609029 // sortable
	comment "Indica si la columna est configurada como ordenable.

@return boolean TRUE para indicar que la columna es ordenable."
      end

      operation 1007109 "addAction"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "action" type class_ref 499717 // ActionButton
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega una accin que se puede ejecutar con los datos de la fila

@param ActionButton $action la accin que se quiere mostrar

@return Column la columna con la accin agregada"
      end

      operation 1007237 "getActions"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "@return array Un arreglo con las acciones configuradas para cada fila"
      end

      operation 1132037 "getExportable"
	force_body_gen const cpp_inline public explicit_return_type "bool"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->exportable;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 718853 // exportable
	comment "Devuelve si la columna debe o no mostrarse en las exportaciones.

@return boolean TRUE si tiene que verse en exportacin y FALSE sino."
      end

      operation 1132165 "setExportable"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "bool"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->exportable = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 718853 // exportable
	comment "Configura si la columna debe ser mostrable en exportacin o no.

@param boolean $value un TRUE para que sea visible y FALSE para que no.

@return Column la columna modificada"
      end

      operation 992645 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 499717 "ActionButton"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 695045 // <realization>
	relation 691717 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 695045 // <realization>
	  b parent class_ref 492933 // TemplateInterface
      end

      classrelation 695813 // <realization>
	relation 692485 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 695813 // <realization>
	  b parent class_ref 499845 // ActionInterface
      end

      attribute 610437 "action"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el cdigo de la accin del sistema"
      end

      attribute 610565 "mode"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el modo de ejecucin de la accin: inline, popup, inline-popup"
      end

      attribute 610693 "params"
	private explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array un arreglo clave valor con los parmetros a pasar a la accin"
      end

      attribute 678533 "caption"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1081861 // getCaption
	set_oper operation_ref 1081989 // setCaption
	comment "@var string el nombre del componente"
      end

      attribute 610821 "icon"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el cono de la accin"
      end

      attribute 610949 "refresh"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la tcnica de refresco luego de ejecutada la accin: none, list, row"
      end

      attribute 1145477 "condition"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string un template que se ejecuta para saber si la acción debe o no mostrarse."
      end

      attribute 1290629 "message"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string un mensaje que se muestra al usuario en ciertos casos (depende del modo de la acción)"
      end

      operation 1287045 "__construct"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 8
	  param inout name "context" type class_ref 417029 // ApplicationContext
	    defaultvalue "null"
	  param in name "actionStr" explicit_type "string"
	    defaultvalue "null"
	  param in name "params" explicit_type "array"
	    defaultvalue "null"
	  param in name "icon" explicit_type "string"
	    defaultvalue "null"
	  param in name "mode" explicit_type "string"
	    defaultvalue "null"
	  param in name "refresh" explicit_type "string"
	    defaultvalue "null"
	  param in name "condition" explicit_type "string"
	    defaultvalue "null"
	  param in name "message" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}, ${p6}${v6}, ${p7}${v7}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Este constructor puede usarse de modo habitual sin parámetros ó, en caso de querer aprovechar la configuración automática, es posible pasarle un contexto y una acción para que se configure sola.
@param ApplicationContext $context el contexto en el que se crea la acción.
@param string $action una cadena de texto de la forma \"FacadeAlias.ActionAlias\"
@param array $params los parámetros a mapear para invocar la accción.
@param string $icon el ícono de la acción
@param string $mode el modo de apertura o ejecución de la acción
@param string $refresh la forma en la que se debe refrescar la pantalla tras la ejecución de la acción
@param string $condition una condición que debe ser cumplida para que se visualice la acción. Se escribe como template de Twig.
@param string $message un mensaje a mostrar al usuario en ciertos modos.

@return ActionButton El botón creado, configurado o no dependiendo de si se le pasaron parámetros o no."
      end

      operation 974853 "setAction"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "action" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura el cdigo de la accin a ejecutar

@param string $action el cdigo de la accin

@return ActionInterface la accin modificada"
      end

      operation 974981 "setMode"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "mode" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "El modo de ejecucin de la accin.

@param string $mode la forma en la cual la accin es invocada. Puede ser:
<ul><li>none, la accin se enva a ejecutar y no requiere retorno al usuario</li>
    <li>inline, la accin se ejecuta como un link</li>
    <li>popup, el resultado de la accin se vuelca en un popup</li>
    <li>inline-popup, el resultado de la accin se devuelve en una ventana hecha con javascript y DOM</li>
</ul>"
      end

      operation 975109 "setParams"
	preserve_cpp_body_indent public return_type class_ref 499845 // ActionInterface
	nparams 1
	  param in name "params" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura parmetros adicionales para la accin ejecutada.

@params string $params los parmetros a pasar a la accin

@return ActionInterface el objeto con los parmetros modificados"
      end

      operation 975237 "setIcon"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "icon" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "El cono para la accin
@param string $icon el icono a configurar en la accin
@return ActionInterface el objeto configurado con el cono seleccionado"
      end

      operation 975365 "setRefresh"
	preserve_cpp_body_indent public return_type class_ref 499845 // ActionInterface
	nparams 1
	  param in name "refresh" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura el esquema de refresco de la accin

@param string $refresh el modo de refresco de la accin
@return ActionInterface el objeto con el mtodo de refresco seleccionado"
      end

      operation 991877 "getAction"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la accin configurada.

@return string el cdigo de la accin"
      end

      operation 992005 "getMode"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el modo de ejecucin

@return string el modo de ejecucin de la accin"
      end

      operation 992133 "getParams"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve los parmetros adicionales.

@return string los parmetros adicionales que se hayan configurado en la accin"
      end

      operation 992261 "getIcon"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve la imagen de la accin.

@return string recupera la imagen de la accin"
      end

      operation 992389 "getRefresh"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera el mtodo de refresco de la accin

@return string recupera el mtodo de refresco de la accin"
      end

      operation 992517 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1081861 "getCaption"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->caption;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 678533 // caption
      end

      operation 1081989 "setCaption"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->caption = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 678533 // caption
      end
    end

    class 499845 "ActionInterface"
      visibility package stereotype "interface"
      cpp_decl ""
      java_decl "${comment}${@}${visibility}interface ${name}${extends} {
${members}}
"
      php_decl "${comment}${visibility}interface ${name} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
      explicit_switch_type ""
      
      comment "Interfaz de una accin del sistema de listado"
      operation 967173 "setAction"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "action" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)};"
	preserve_python_body_indent 
	
	comment "Configura el cdigo de la accin a ejecutar

@param string $action el cdigo de la accin

@return ActionInterface la accin modificada"
      end

      operation 983429 "getAction"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	preserve_python_body_indent 
	
	comment "Retorna la accin configurada.

@return string el cdigo de la accin"
      end

      operation 967301 "setMode"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "mode" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)};"
	preserve_python_body_indent 
	
	comment "El modo de ejecucin de la accin.

@param string $mode la forma en la cual la accin es invocada. Puede ser:
<ul><li>none, la accin se enva a ejecutar y no requiere retorno al usuario</li>
    <li>inline, la accin se ejecuta como un link</li>
    <li>popup, el resultado de la accin se vuelca en un popup</li>
    <li>inline-popup, el resultado de la accin se devuelve en una ventana hecha con javascript y DOM</li>
</ul>"
      end

      operation 983557 "getMode"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	preserve_python_body_indent 
	
	comment "Recupera el modo de ejecucin

@return string el modo de ejecucin de la accin"
      end

      operation 973829 "setParams"
	preserve_cpp_body_indent public return_type class_ref 499845 // ActionInterface
	nparams 1
	  param in name "params" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)};"
	preserve_python_body_indent 
	
	comment "Configura parmetros adicionales para la accin ejecutada.

@params string $params los parmetros a pasar a la accin

@return ActionInterface el objeto con los parmetros modificados"
      end

      operation 984453 "getParams"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	preserve_python_body_indent 
	
	comment "Devuelve los parmetros adicionales.

@return string los parmetros adicionales que se hayan configurado en la accin"
      end

      operation 973957 "setIcon"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "icon" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)};"
	preserve_python_body_indent 
	
	comment "El cono para la accin
@param string $icon el icono a configurar en la accin
@return ActionInterface el objeto configurado con el cono seleccionado"
      end

      operation 984581 "getIcon"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	preserve_python_body_indent 
	
	comment "Devuelve la imagen de la accin.

@return string recupera la imagen de la accin"
      end

      operation 974085 "setRefresh"
	preserve_cpp_body_indent public return_type class_ref 499845 // ActionInterface
	nparams 1
	  param in name "refresh" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)};"
	preserve_python_body_indent 
	
	comment "Configura el esquema de refresco de la accin

@param string $refresh el modo de refresco de la accin
@return ActionInterface el objeto con el mtodo de refresco seleccionado"
      end

      operation 984709 "getRefresh"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	preserve_python_body_indent 
	
	comment "Recupera el mtodo de refresco de la accin

@return string recupera el mtodo de refresco de la accin"
      end
    end

    class 539013 "ListActionInterface"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      operation 1089541 "list"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 7
	  param inout name "list" type class_ref 499461 // WebList
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "orm" type class_ref 167685 // ORM
	  param in name "from" explicit_type "int"
	  param in name "to" explicit_type "int"
	  param in name "wich" explicit_type "int"
	  param in name "refresh" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}, ${p6}${v6}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "refresh {
	default:page => from: to:
        rows => from: to:
        row  => wich:
}"
      end
    end

    class 545797 "ORMWebList"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      attribute 712197 "orm"
	private type class_ref 167685 // ORM
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ORM la instancia del ORM pasada al deploy()"
      end

      classrelation 766597 // <generalisation>
	relation 763269 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 766597 // <generalisation>
	  b parent class_ref 499461 // WebList
      end

      operation 1097477 "deploy"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la instancia necesaria para renderizar del listado.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return Renderable el objeto que representa el listado o la seccin del listado que se debe desplegar."
      end
    end

    class 715781 "DateComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 979845 // <generalisation>
	relation 972677 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 979845 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      attribute 1087621 "NORMAL_VIEW"
	const_attribute package explicit_type "int"
	init_value "0"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Un valor que indica al calendario que se muestre en la vista normal, es decir, día por día."
      end

      attribute 1087749 "WEEK_VIEW"
	const_attribute package explicit_type "int"
	init_value "1"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Un valor que indica al calendario que se muestre en formato de selección por semana."
      end

      attribute 951813 "format"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string una cadena de formato basado en jQuery"
      end

      attribute 1087493 "calendarView"
	protected explicit_type "int"
	init_value "DateComponent::NORMAL_VIEW"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int indica si el calendario es normal o si se emplea una vista semanal para las selecciones."
      end

      operation 1427461 "__construct"
	preserve_cpp_body_indent public return_type class_ref 715781 // DateComponent
	nparams 6
	  param in name "label" explicit_type "string"
	    defaultvalue "null"
	  param in name "name" explicit_type "string"
	    defaultvalue "null"
	  param in name "maps" explicit_type "string"
	    defaultvalue "null"
	  param in name "format" explicit_type "string"
	    defaultvalue "\"Y-m-d\""
	  param in name "value" explicit_type "mixed"
	    defaultvalue "null"
	  param in name "template" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea un componente.
@param string $label el rtulo del componente
@param string $name el nombre del componente
@param string $maps el valor al que mapea el componente
@param string $format el formato de la fecha acorde a la documentacin de PHP
@param mixed $value el valor predeterminado del componente
@param string $template el template a utilizar para el renderizado
@return DateComponent La instancia del componente inicializada."
      end

      operation 1427333 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "\"\""
	  param in name "suffix" explicit_type "string"
	    defaultvalue "\"\""
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1487877 "toURL"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una versin string del nombre del componente y de su valor. Slo sirve cuando ambos datos estn definidos.
@param string $prefix el prefijo del nombre del elemento
@param string suffix el sufijo del nombre del elemento
@return string una porcin de URL que representa el componente y su valor o el string vaco si no tiene un value asignado o si no tiene un name."
      end

      operation 1580933 "setView"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "viewType" explicit_type "int"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Función que sirve para cambiar la forma de visualizar el calendario, de una vista diaria a una semanal.

@param int$viewType si es true se altera la forma diaria normal a una donde la selección es visualmente por semana. Las constates son DateComponente::NORMAL_VIEW y DateComponent::WEEK_VIEW
@return DateComponent El componente de fecha la el formato de visualización configurado."
      end

      operation 1581061 "getWeek"
	preserve_cpp_body_indent public explicit_return_type "int"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la semana que representa la fecha del calendario usando el estándar ISO 8601.

@return int el número de la semana del año. Si el valor del componente no está definido retorna \"0\"."
      end

      operation 1581189 "getWeekStart"
	preserve_cpp_body_indent public explicit_return_type "DateTime"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera la fecha del primer día de la semana de la fecha que tiene configurada el componente.

@return DateTime la fecha de inicio de la semana que inicia."
      end
    end

    class 722309 "DetailWebList"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      attribute 958725 "detail"
	private type class_ref 486021 // Form
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1434629 // getDetail
	set_oper operation_ref 1434757 // setDetail
	comment "@var Form el formulario de detalle"
      end

      classrelation 986629 // <generalisation>
	relation 979461 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 986629 // <generalisation>
	  b parent class_ref 499461 // WebList
      end

      attribute 958597 "detailTemplate"
	private explicit_type "string"
	init_value "'list_detail.xhtml'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1434245 // getDetailTemplate
	set_oper operation_ref 1434373 // setDetailTemplate
	comment "@var string el template del detalle"
      end

      attribute 958853 "detailFunction"
	private explicit_type "Closure"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var Closure la funcion asociada al formulario de detalle"
      end

      operation 1434885 "__construct"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "manager" type class_ref 416901 // AbstractManager
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea una instancia de WebList.
@param AbstractManager $manager El manager en el cual se est creando el listado.

@return WebList una instancia nueva de la clase."
      end

      operation 1433989 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "postfix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $postfix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end

      operation 1434117 "deploy"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la instancia necesaria para renderizar del listado.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return Renderable el objeto que representa el listado o la seccin del listado que se debe desplegar."
      end

      operation 1434245 "getDetailTemplate"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->detailTemplate;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 958597 // detailTemplate
	comment "Retorna el nombre del template de detalle.

@return string el path+archivo del template."
      end

      operation 1434373 "setDetailTemplate"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->detailTemplate = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 958597 // detailTemplate
	comment "Configura el template a usar para el detalle.

@param string $value el path+template
@return DetailWebList El listado modificado."
      end

      operation 1434501 "setDetailFunction"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "func" explicit_type "Closure"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "La funcion asociada al detalle de listado.

@param Closure $func la funcion.
@return DetailWebList el listado con la funcion de detalle configurada."
      end

      operation 1434629 "getDetail"
	force_body_gen const cpp_inline public return_type class_ref 486021 // Form
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->detail;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 958725 // detail
	comment "Recupera el formulario de detalle.
@return Form el formulario de detalle configurado."
      end

      operation 1434757 "setDetail"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" type class_ref 486021 // Form
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->detail = ${p0};
  return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 958725 // detail
	comment "Configura el formulario de detalle

@param Form $value la instancia de formulario a utilizar.
@return DetailWebList el listado con la instancia configurada."
      end
    end

    class 764677 "ABMFormMinimal"
      abstract visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      attribute 1011845 "orm"
	protected type class_ref 167685 // ORM
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ORM la instancia del manejador de objetos que mantiene la clase"
      end

      operation 1499653 "__construct"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea una instancia de Form.

@return Form"
      end

      operation 1500165 "fresh"
	abstract preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 2
	  param in name "context" type class_ref 417029 // ApplicationContext
	  param in name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Funcin invocada para crear una instancia del objeto que representa el formulario

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return boolean un TRUE si todo sali bien y un FALSE sino."
      end

      operation 1499909 "modify"
	abstract preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 2
	  param in name "context" type class_ref 417029 // ApplicationContext
	  param in name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Funcin invocada para modificar el objeto que representa el formulario.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return boolean un TRUE si todo sali bien y un FALSE sino."
      end

      operation 1500037 "saveNew"
	abstract preserve_cpp_body_indent cpp_virtual public return_type class_ref 141317 // ORMObject
	nparams 2
	  param in name "context" type class_ref 417029 // ApplicationContext
	  param in name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Funcin invocada para guardar el objeto que representa el formulario.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return ORMObject el objeto ya guardado si todo sali bien y un FALSE sino."
      end

      operation 1500293 "saveModify"
	abstract preserve_cpp_body_indent cpp_virtual public return_type class_ref 141317 // ORMObject
	nparams 2
	  param in name "context" type class_ref 417029 // ApplicationContext
	  param in name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Funcin invocada para guardar el objeto que representa el formulario.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return ORMObject el objeto ya guardado si todo sali bien y un FALSE sino."
      end

      operation 1499781 "delete"
	abstract preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 2
	  param in name "context" type class_ref 417029 // ApplicationContext
	  param in name "orm" type class_ref 167685 // ORM
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Funcin invocada para borrar el objeto que representa el formulario.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return boolean un TRUE si todo sali bien y un FALSE sino."
      end

      operation 1500421 "deploy"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	    defaultvalue "null"
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Solicita al formulario que realice la tarea para la que est configurado.

@param ApplicationContext $context el contexto en el cual el Form debe hacer su trabajo.
@param ORM $orm el ORM a usar

@return Renderable la pantalla que debe mostrar."
      end

      classrelation 1041285 // <generalisation>
	relation 1027205 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1041285 // <generalisation>
	  b parent class_ref 486021 // Form
      end
    end

    classdiagram 258949 "List Reports Diagram"
      draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
      size A4-Landscape
    end

    class 779525 "ListReport"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      attribute 1044357 "title"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1531525 // getTitle
	set_oper operation_ref 1531653 // setTitle
	comment "@var string el titulo del reporte de éxito"
      end

      attribute 1045509 "class"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1533317 // getClass
	set_oper operation_ref 1533445 // setClass
	comment "@var string un estilo CSS a utilizar en el DIV que abarca todo el reporte."
      end

      classrelation 1066373 // sections (<directional aggregation>)
	relation 1051653 o-->
	  a role_name "sections" multiplicity "1..*" private
	    comment "@var array la lista de secciones del reporte"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1066373 // sections (<directional aggregation>)
	  b parent class_ref 779653 // ListSection
      end

      classrelation 1066501 // <realization>
	relation 1051781 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 1066501 // <realization>
	  b parent class_ref 492933 // TemplateInterface
      end

      attribute 1044741 "template"
	private explicit_type "string"
	init_value "'lib/reporte.xhtml'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1531781 // getTemplate
	set_oper operation_ref 1531909 // setTemplate
	comment "@var string una variable que indica cuál es el template al que se destina el reporte"
      end

      attribute 1045253 "currentSection"
	private type class_ref 779653 // ListSection
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ListSection la última sección creada o agregada al reporte."
      end

      operation 1534341 "__construct"
	preserve_cpp_body_indent public return_type class_ref 779525 // ListReport
	nparams 2
	  param in name "title" explicit_type "string"
	  param in name "class" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea un reporte con forma de lista.

@param string $title el título general del reporte.
@param string $class el estilo CSS que se aplica al reporte entero.

@return ListReport Retorna un reporte nuevo."
      end

      operation 1531269 "createSection"
	preserve_cpp_body_indent public return_type class_ref 779653 // ListSection
	nparams 2
	  param in name "title" explicit_type "string"
	  param in name "class" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea una sección dentro del reporte actual y la devuelve.

@param string $title el título de la sección.
@param string $class el estilo CSS para la sección, opcional.

@return ListSection la sección creada."
      end

      operation 1531397 "addSection"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "section" type class_ref 779653 // ListSection
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega una sección al reporte actual.

@param ListSection $section la sección a agregar.

@return ListReport Retorna el reporte con la sección agregada"
      end

      operation 1532421 "addItem"
	preserve_cpp_body_indent public return_type class_ref 779525 // ListReport
	nparams 2
	  param in name "text" explicit_type "string"
	  param in name "class" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega un ítem a la sección actual

@param string $texto la descripción del ítem
@param string $class el estilo CSS asociado al ítem, opcional.

@return ListReport El reporte actual con el ítem agregado a la última sección creada."
      end

      operation 1531525 "getTitle"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->title;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 1044357 // title
      end

      operation 1531653 "setTitle"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->title = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 1044357 // title
      end

      operation 1531781 "getTemplate"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->template;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 1044741 // template
      end

      operation 1531909 "setTemplate"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->template = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 1044741 // template
      end

      operation 1533317 "getClass"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->class;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 1045509 // class
      end

      operation 1533445 "setClass"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->class = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 1045509 // class
      end

      operation 1533957 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "\"\""
	  param in name "suffix" explicit_type "string"
	    defaultvalue "\"\""
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 779653 "ListSection"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 1066629 // <realization>
	relation 1051909 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 1066629 // <realization>
	  b parent class_ref 492933 // TemplateInterface
      end

      attribute 1044613 "title"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1533061 // getTitle
	set_oper operation_ref 1533189 // setTitle
	comment "@var string el título de la sección"
      end

      attribute 1045381 "class"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1533573 // getClass
	set_oper operation_ref 1533701 // setClass
	comment "@var string el estilo CSS a emplear en la construcción de la lista."
      end

      attribute 1080325 "currentItem"
	private type class_ref 779781 // ListSectionItem
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ListSectionItem a documentar"
      end

      classrelation 1066757 // items (<directional aggregation>)
	relation 1052037 o-->
	  a role_name "items" private
	    comment "@var array una colección que almacena los items a listar"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1066757 // items (<directional aggregation>)
	  b parent class_ref 779781 // ListSectionItem
      end

      operation 1532293 "__construct"
	preserve_cpp_body_indent public return_type class_ref 779653 // ListSection
	nparams 2
	  param in name "title" explicit_type "string"
	  param in name "class" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea una sección.

@param string $title el título de la sección.
@param string $class el estilo CSS que se desea aplicar a la sección

@return ListSection Devuelve una nueva sección con el título designado."
      end

      operation 1532037 "createItem"
	preserve_cpp_body_indent public return_type class_ref 779653 // ListSection
	nparams 2
	  param in name "text" explicit_type "string"
	  param in name "css" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea y agrega un ítem a la lista, posteriormente será mostrado con el estilo y el bullet especificado.

@param string $text el texto a exhibir al usuario
@param string $css la clase CSS asociada al texto del ítem

@return ListSection Devuelve la sección a la que se le ha agregado el ítem."
      end

      operation 1533829 "addItem"
	preserve_cpp_body_indent public return_type class_ref 779653 // ListSection
	nparams 1
	  param in name "item" type class_ref 779781 // ListSectionItem
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega un ítem al listado.

@param ListSectionItem $item el ítem a agregar.

@return ListSection la sección con el ítem agregado."
      end

      operation 1533061 "getTitle"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->title;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 1044613 // title
      end

      operation 1533189 "setTitle"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->title = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 1044613 // title
      end

      operation 1533573 "getClass"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->class;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 1045381 // class
      end

      operation 1533701 "setClass"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->class = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 1045381 // class
      end

      operation 1534085 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "\"\""
	  param in name "suffix" explicit_type "string"
	    defaultvalue "\"\""
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 779781 "ListSectionItem"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      attribute 1044997 "text"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1532549 // getText
	set_oper operation_ref 1532677 // setText
	comment "@var string el texto a mostrar en la descripción del ítem"
      end

      attribute 1045125 "class"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 1532805 // getClass
	set_oper operation_ref 1532933 // setClass
	comment "@var string la clase CSS asociada al ítem"
      end

      operation 1532165 "__construct"
	preserve_cpp_body_indent public return_type class_ref 779781 // ListSectionItem
	nparams 2
	  param in name "text" explicit_type "string"
	  param in name "class" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea un nuevo ítem de listado con el texto especificado y el estilo indicado.

@param string $text el texto que describe el ítem.
@param string $class la clase asociada.

@return ListSectionItem el ítem creado"
      end

      operation 1532549 "getText"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->text;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 1044997 // text
      end

      operation 1532677 "setText"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->text = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 1044997 // text
      end

      operation 1532805 "getClass"
	force_body_gen const cpp_inline public explicit_return_type "string"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->class;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 1045125 // class
      end

      operation 1532933 "setClass"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "string"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->class = ${p0};
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 1045125 // class
      end

      classrelation 1066885 // <realization>
	relation 1052165 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 1066885 // <realization>
	  b parent class_ref 492933 // TemplateInterface
      end

      operation 1534213 "toArray"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "\"\""
	  param in name "suffix" explicit_type "string"
	    defaultvalue "\"\""
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 982405 "ActionComponent"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 1328389 // <generalisation>
	relation 1309701 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1328389 // <generalisation>
	  b parent class_ref 477957 // Component
      end

      attribute 1317893 "mode"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el modo de ejecución de la acción"
      end

      attribute 1318021 "condition"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la condición a ser chequeada antes demostrar el botón"
      end

      attribute 1318149 "message"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string un mensaje a mostrar en caso que la acción esté indicada como crítica"
      end

      attribute 1318277 "icon"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el nombre de un ícono personalizado"
      end

      attribute 1318405 "refresh"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el modo de refresco"
      end

      operation 1878533 "__construct"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 10
	  param in name "label" explicit_type "string"
	    defaultvalue "null"
	  param in name "name" explicit_type "string"
	    defaultvalue "null"
	  param in name "maps" explicit_type "string|array"
	    defaultvalue "null"
	  param in name "actionStr" explicit_type "string"
	    defaultvalue "null"
	  param in name "params" explicit_type "string"
	    defaultvalue "null"
	  param in name "mode" explicit_type "string"
	    defaultvalue "null"
	  param in name "condition" explicit_type "string"
	    defaultvalue "null"
	  param in name "message" explicit_type "string"
	    defaultvalue "null"
	  param in name "icon" explicit_type "string"
	    defaultvalue "null"
	  param in name "refresh" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}, ${p6}${v6}, ${p7}${v7}, ${p8}${v8}, ${p9}${v9}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Este constructor puede usarse de modo habitual sin parámetros ó, en caso de querer aprovechar la configuración automática, es posible pasarle sólo la acción para que se configure sola.
@param string $label un rótulo opcional para el botón
@param string $name el nombre del componente
@param string $actionStr una cadena de texto de la forma \"FacadeAlias.ActionAlias\"
@param string|array $params un conjunto de parámetros adicionales a pasarle a la acción
@param string|array $maps los parámetros a mapear para invocar la accción.
@param string $mode el modo de apertura o ejecución de la acción
@param string $condition una condición que debe ser cumplida para que se visualice la acción. Se escribe como template de Twig.
@param string $message un mensaje a mostrar al usuario en ciertos modos.
@param string $icon el ícono de la acción
@param string $refresh la forma en la que se debe refrescar la pantalla tras la ejecución de la acción

@return ActionComponent La instancia del botón con los parámetros indicados configurados."
      end

      operation 1878405 "toArray"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 2
	  param in name "prefix" explicit_type "string"
	    defaultvalue "''"
	  param in name "suffix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna un arreglo la definicin del objeto a fin de que sea fcilmente interpretable por un Template de TWIG.
Debido a que no todos los componentes tienen el maps y el name obligatorio, se asume como regla que:
<ul>
	<li><b>si tiene name</b>, se usa el name.</li>
	<li><b>si no tiene name</b>, se usa el maps de la siguiente manera: $prefix.maps.$postfix</li>
</ul>

@param string $prefix el prefijo que emplea para generar los nombres cuando no existe el name.
@param string $suffix el sufijo que emplea para generar los nombres cuando no existe el name.

@return array El arreglo que representa el objeto y sus propiedades"
      end
    end

    class 1340421 "HABForm"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 1866629 // <generalisation>
	relation 1806341 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1866629 // <generalisation>
	  b parent class_ref 532485 // ABMForm
      end
    end
  end

  deploymentview 187013 "Web Deployment"
    //deployment diagram settings
    package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
    draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
    ncouples 1
    key "uses" value ""
    artifact 371845 "Component"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 477957 // Component
      end
    end

    artifact 371973 "Layout"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 478085 // Layout
      end
    end

    artifact 372101 "TextComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 478213 // TextComponent
      end
    end

    artifact 372229 "PasswordComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 478341 // PasswordComponent
      end
    end

    artifact 372357 "SelectComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 478469 // SelectComponent
      end
    end

    artifact 372485 "MultiselectComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 484997 // MultiselectComponent
      end
    end

    artifact 372613 "RadioComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 485253 // RadioComponent
      end
    end

    artifact 372741 "CheckboxComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 485381 // CheckboxComponent
      end
    end

    artifact 372869 "ButtonComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 485509 // ButtonComponent
      end
    end

    artifact 372997 "ImageButtonComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 485637 // ImageButtonComponent
      end
    end

    artifact 373125 "FileComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 485765 // FileComponent
      end
    end

    artifact 373381 "Form"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 486021 // Form
      end
    end

    artifact 373509 "GridLayout"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 486149 // GridLayout
      end
    end

    artifact 373637 "TextArea"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 486277 // TextArea
      end
    end

    artifact 380165 "EmptyComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 492805 // EmptyComponent
      end
    end

    artifact 380421 "TemplateInterface"
      stereotype "source"
      java_src "${comment}
${package}
${imports}
${definition}"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      idl_src "#ifndef ${MODULE}_${NAME}_H
#define ${MODULE}_${NAME}_H

${comment}
${includes}
${module_start}
${definition}
${module_end}
#endif
"
      associated_classes
	class_ref 492933 // TemplateInterface
      end
    end

    artifact 386949 "ActionInterface"
      stereotype "source"
      java_src "${comment}
${package}
${imports}
${definition}"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      idl_src "#ifndef ${MODULE}_${NAME}_H
#define ${MODULE}_${NAME}_H

${comment}
${includes}
${module_start}
${definition}
${module_end}
#endif
"
      associated_classes
	class_ref 499845 // ActionInterface
      end
    end

    artifact 393477 "HiddenComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 506373 // HiddenComponent
      end
    end

    artifact 400005 "ActionButton"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 499717 // ActionButton
      end
    end

    artifact 400133 "Column"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 499589 // Column
      end
    end

    artifact 406661 "WebList"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 499461 // WebList
      end
    end

    artifact 441605 "ABMForm"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 532485 // ABMForm
      end
    end

    artifact 454789 "ORMWebList"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 545797 // ORMWebList
      end
    end

    artifact 493061 "ComposedForm"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 595973 // ComposedForm
      end
    end

    artifact 493189 "FormCondition"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 596101 // FormCondition
      end
    end

    artifact 506245 "LabelComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: Jorge Alexis Viqueira
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 609157 // LabelComponent
      end
    end

    artifact 587013 "DateComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 715781 // DateComponent
      end
    end

    artifact 593541 "DetailWebList"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 722309 // DetailWebList
      end
    end

    artifact 643205 "ABMFormMinimal"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 764677 // ABMFormMinimal
      end
    end

    artifact 658437 "ListReport"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 779525 // ListReport
      end
    end

    artifact 658565 "ListSection"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 779653 // ListSection
      end
    end

    artifact 658693 "ListSectionItem"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 779781 // ListSectionItem
      end
    end

    artifact 841221 "ActionComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 982405 // ActionComponent
      end
    end

    artifact 141318 "GroupComponent"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 485893 // GroupComponent
      end
    end
  end
end
