Este paquete expone un mecanismo para registro de clases.
Permite registrar clases o factorias de clases que luego pueden ser recuperadas para construir instancias.
La finalidad de este registro es el manejo de puntos de extension a una aplicacion. Una aplicacion declara o registra con un nombre los puntos de extension que va a tener. Cada punto de extension puede tener registradas una o mas extensiones. Cuando se quiere aņadir una extension a la aplicacion, se registra la clase o factoria que gestiona esa extension para el punto de extension que se desee.
Veamos esto con un ejemplo.
Supongamos que queremos aņadir un punto de extension a la aplicacion gvSIG, que permita asignar un mecanismo de presentacion de la informacion asociada a la herramienta de "informacion" especializada segun el tipo de tema sobre el que se esta trabajando.
Lo primero que tendriamos que hacer es darle un nombre al punto de extension. Lo llamaremos "InfoByPoint". Para esto, parte de la aplicacion que valla a utilizar las extensiones que se registren en este punto deberia hacer lo siguiente:
ExtensionPoint infoByPoint = new ExtensionPoint("InfoByPoint","Registra las distintas extensiones que se pueden aņadir al 'InfoByPoint'"); ExtensionPoints extensionPoints = ExtensionPointsSingleton.getInstance(); extensionPoints.put(infoByPoint); Con esto creamos un punto de extension de nombre "InfoByPoint", recogemos la instancia del registro de extensiones e insertamos el nuevo punto de extenstion en el.
Si desde la parte de la aplicacion que se quieran acceder a la extension de nombre "MiLayer" se haria:
ExtensionPoint infoByPoint = (ExtensionPoint)extensionPoints.get("InfoByPoint"); Object ext = infoByPoint.create("MiLayer"); Y para poder recorrer las distintas extensiones de ese punto:
ExtensionPoint infoByPoint = (ExtensionPoint)extensionPoints.get("InfoByPoint"); Iterator infoByPoint =infoByPoint.keySet().iterator(); while( i.hasNext() ) { String nombre = (String)i.next(); ... }