Diagrama de clases del módulo de wiring
Este diagrama de clases se refiere a la versión 0.2 de la plataforma y en él se muestran todas las clases y métodos relevantes del módulo de wiring. De forma adjunta a esta página de la wiki se proporciona el fichero .zargo con el diagrama para que se puedan realizar las modificaciones necesarias en posteriores actualizaciones. La versión anterior se puede consultar en Diagrama de Clases del Módulo de Wiring.
con respecto a la versión anterior ha habido variaciones sustanciales, cuyo principal objetivo ha sido simplificar el módulo, dado que había numerosas funcionalidades que no se usaban y permitían mejorar la eficiencia de las operaciones.
La clase wiring
Es la clase principal del módulo y se encarga de la gestión de las estructuras necesarias para la gestión de los objetos interconectables relacionados con las instancias de los gadgets asociados a los mismos. Cada objeto de esta clase se encargará de la gestión de las conexiones de un único workspace.
Atributos
- workspace: es el entorno de trabajo cuyas conexiones gestiona.
- loaded: variable booleana que indica el estado (cargado o no) del módulo de wiring.
- persistenceEngine: sirve para acceder al servidor de persistencia y salvar/recuperar los dato0s asociados a las conexiones.
- iGadgets: es un hash con las instancias de gadgets que permite manejar los eventos y slots asociados.
- channels: es un array que contiene todos los canales asociados a un entorno de trabajo.
- channelsForRemoving: es un array en el que se almacenan temporalmente los cambios en los canales cuando se están eliminando las conexiones con el fin de realizar posteriormente operaciones de persistencia.
Métodos
- getConnectableId(variables, name, igadgetId): método que sirve para obtener el identificador de un conectable a partir de su variable.
- processTab(tabData: TabData?): método auxiliar aplicado durante la carga para generar los elementos asociados a un objeto wTab.
- processVar(varData: VarData?): método auxiliar aplicado para generar los restantes tipos de conectables a partir de sus variables.
- propagateInitialValues(initial:wConnectable): este método se encarga de la propagación de datos durante la carga de elementos del wiring.
- loadWiring(workspaceData:WorkspaceData): es la operación principal de este tipo de objetos y se encarga de la coordinación de la construcción de la estructura de datos del módulo de wiring asociado a un entorno de trabajo a partir de los datos del mismo.
- addInstance(igadget:IGadget, variables:Array): se encarga de generar los objetos asociados a los eventos y ranuras de un igadget mediante las variables asociadas a los mismos.
- removeInstance(iGadgetId:String): elimina todos los eventos y ranuras asociados a un iGadget.
- getIGadgetConnectables(iGadget: IGadget): devuelve una estructura con todos los conectables asociados a un iGadget.
- getChannels(): devuelve la estructura que contiene los canales.
- channelExists(channelName:String): comprueba que un canal existe.
- _insertChannel(channelName:String, channelVar:Variable, id:string, provisional_id:boolean): es un método auxiliar para la creación de canales que se invoca desde el createChannel.
- createChannel(channelName:String, channelId:String): se invoca para crear un nuevo canal, encargándose de la gestión de la variable asociada al mismo.
- removeChannel(channelId:String): se invoca para destruir un canal ya existente.
- unload(): su función es destruir las estructuras de canales para que el módulo pase a estado de no cargado.
- serialize(): es el método a usar con el propósito de persistir el estado de las conexiones del módulo. Al servirse de una petición REST al servidor de persistencia se hace necesario incluir dos funciones privadas para el tratamiento de los casos de éxito y error (serializationSuccess y serializationError respectivamente).
La clase wConnectable
Es una clase de la cual heredaran los elementos conectables mediante el módulo de wiring.
Atributos
- id: identificador del objeto.
- name: nombre identificativo del conectable.
- type: tipo de datos que maneja el objeto conectable.
- friendcode: indicador semántico que concreta el tipo de datos manejado.
- connectableType: tipo del objeto conectable.
Métodos
El constructor de los conectables requiere el nombre, el tipo, el friendcode y el identificador. El tipo de conectable no se define al crearlo
- getType: devuelve el tipo del conectable.
- getValue: inicialmente devuelve una excepción ya que es un método que se implementará en las clases hijas.
- getName: devuelve el nombre del conectable
- getId: devuelve el identificador del conectable.
- getFriendCode: devuelve el friencode del conectable.
- destroy: destruye el objeto eliminando previamente las conexiones con otros posibles conectables.
La clase wOut
A esta clase pertecerán los objetos que reciban información transmitida mediante el módulo de wiring.
Atributos
Además de los ya presentes por la herencia de la clase wConnectable, contiene el siguiente atributo:
- inouts: es un array en el que se almacenan todos los canales (y futuros elementos que hereden de la clase wInOut) que estén conectados como salidas al objeto.
Métodos
Los métodos que se le añaden a esta clase son:
- addInOut(inout:wConnectable): conecta el canal "inout" al objeto.
- disconnect(inout:wConnectable): desconecta el canal "inout" del objeto.
- fullDisconnect(): desconecta todos los canales conectados al objeto registrados dentro del array "inouts".
La clase wIn
A esta clase pertecerán los objetos que generen información destinada a ser transmitida mediante el módulo de wiring.
Atributos
Además de los ya presentes por la herencia de la clase wConnectable, contiene el siguiente atributo:
- outputs: es un array en el que se almacenan todos los canales (y futuros elementos que hereden de la clase wInOut) que estén conectados como salidas del objeto.
Métodos
Los métodos que se le añaden a esta clase son:
- connect(out:wConnectable): sirve para conectar objetos a la salida del propio objeto wIn.
- disconnect(inout:wConnectable): desconecta el canal "inout" del objeto.
- fullDisconnect(): desconecta todos los canales conectados al objeto registrados dentro del array "inouts".
- propagate(value:String, initial: wConnectable): propaga a las salidas registradas en el array "outputs" el valor "value". El parámetro initial no se usa de momento pero esta incluido para controlar ciclos en posteriores versiones.
La clase wInOut
Esta clase representa a todos los objetos que se pueden conectar entre un objeto de clase wIn y un objeto de clase wOut.
Atributos
Además de los ya presentes por la herencia de la clase wIn, contiene el siguiente atributo:
- inputs: es un array en el que se almacenan todos los canales (y futuros elementos que hereden de la clase wInOut) que estén conectados como entradas al objeto.
Métodos
Los métodos que se le añaden a esta clase son:
- _addInput(wIn:wIn): conecta un conectable que genera información al objeto wInOut.
- _removeInput(wIn:wIn): desconecta un conectable que genera información del canal.
- _removeOutput(wOut:wOut): desconecta un conectable que receptor de información del canal.
- fullDisconnect(): desconecta todos elementos conectados a la salida y a la entrada del objeto.
Y los métodos que se redefinen son:
- connect(out:wConnectable): sirve para conectar objetos a la salida del propio objeto wInOut.
La clase wEvent
A esta clase pertenecen los objetos que generan los datos en las instancias de gadget.
Atributos
Además de los ya presentes por la herencia de la clase wIn, contiene el siguiente atributo:
- variable: es la variable asociada al objeto para la gestión interna en el entorno operacional.
Métodos
Los métodos que se le añaden a esta clase son:
- getQualifiedName(): devuelve el nombre identificativo del evento para poder realizar las operaciones de persistencia.
La clase wChannel
Los canales son los objetos cuya finalidad es el intercambio y propagación de datos entre eventos y ranuras.
Atributos
Además de los ya presentes por la herencia de la clase wIn, contiene el siguiente atributo:
- variable: es la variable asociada al objeto para la gestión interna en el entorno operacional.
- provisional_id: indica si el identificador es provisional.
Métodos
Los métodos que se le añaden a esta clase son:
- getValue(): devuelve el valor de la variable asociada al evento.
- getQualifiedName(): devuelve el nombre identificativo del evento para poder realizar las operaciones de persistencia.
Y los métodos que se redefinen son:
- propagate(value:String, initial: wConnectable): además de propagar el valor se encarga de fijarlo en el canal.
La clase wSlot
A esta clase pertenecen los objetos que reciben los datos en las instancias de gadget.
Atributos
Además de los ya presentes por la herencia de la clase wOut, contiene el siguiente atributo:
- variable: es la variable asociada al objeto para la gestión interna en el entorno operacional.
Métodos
Los métodos que se le añaden a esta clase son:
- getQualifiedName(): devuelve el nombre identificativo del evento para poder realizar las operaciones de persistencia.
Y los métodos que se redefinen son:
- propagate(value:String, initial: wConnectable): en lugar de propagar el valor simplemente se lo asigna a la variable asociada.
La clase wTab
A esta clase pertenecen los objetos que reciben los eventos destinados a activar las pestañas.
Atributos
Además de los ya presentes por la herencia de la clase wOut, contiene el siguiente atributo:
- variable: es la variable asociada al objeto para la gestión interna en el entorno operacional.
- tab: representa la pestaña a la que esta asociado el conectable.
Métodos
Los métodos que se le añaden a esta clase son:
- getQualifiedName(): devuelve el nombre identificativo del evento para poder realizar las operaciones de persistencia.
Y los métodos que se redefinen son:
- propagate(value:String, initial: wConnectable): en lugar de propagar el valor simplemente se lo asigna a la variable asociada.
Attachments
- clases_wiring_v0.2.zargo (11.1 kB) - added by miglesia-upm on 07/23/08 16:42:03.
- DiagramaClasesWiring_v0.2.png (24.5 kB) - added by miglesia-upm on 07/23/08 16:42:20.

