La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

GvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Introduccion a la creacion de proveedores de datos en DAL gvSIG: Avanzando Juntos.

Presentaciones similares


Presentación del tema: "GvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Introduccion a la creacion de proveedores de datos en DAL gvSIG: Avanzando Juntos."— Transcripción de la presentación:

1 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Introduccion a la creacion de proveedores de datos en DAL gvSIG: Avanzando Juntos http://www.gvsig.gva.es http://www.gvsig.org

2 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● ¿ Que vamos a ver ? Servicios a proveedores en la aquitectura general de DAL Servicios a proveedores de datos tabulares Servicios de DAL hacia los proveedores Servicios que debe proporcionar un proveedor Creacion de un proveedor simple de datos en ficheros CSV

3 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● ¿ Que no vamos a ver ? Solo vamos a ver servicios relacionados con datos tabulares. No vamos a ver los servicios que hay montados alrededor de los proveedores de base de datos No vamos a ver los servicios a proveedores no vasados en memoria. No vamos a ver como implementar un nuevo ServerExplorer.

4 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores de datos en la arquitectura general de DAL Las principales entidades del API de DAL sin entrar en la especializacion de datos tabulares o coverturas son: DALLocator DataManager DataStore DataServerExplorer DataParameters

5 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores de datos en la arquitectura general de DAL Estas entidades tienen su contrapartida dentro del SPI de DAL DALLocator DataManager DataStore DataServerExplorer DataParameters DataManagerProviderServices DataStoreProvider DataExplorerProviver AbstractDataParameters

6 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores de datos en la arquitectura general de DAL ● Basicamente aparence tres tipos de entidades en el SPI: Las que proporcionan servicios a los proveedores de datos Las que indican que servicios debe proporcionar un proveedor de datos Clases abstracts de las que un proveedor puede extender DataManagerProviderServices DataStoreProvider DataExplorerProviver AbstractDataParameters

7 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Convenios en la nomenclatura de ● clases e interfaces en el SPI ● A lo largo del SPI se ha tratado de seguir una nomenclatura uniforme para estas entidades Para las que proporcionan servicios a los proveedores. Para las que indican servicios que debe proporcionar el proveedor. Para las clases abstracts de las que un proveedor puede extender XXXProviderServices XXXProvider AbstractXXX Vamos a ver ahora servicios especificos de acceso a datos tabulares

8 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Las principales entidades que nos enconrabamos en el API tabular eran: FeatureStore FeatureQuery FeatureSet Feature FeatureReference FeatureIndex

9 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Las principales entidades que nos enconrabamos en el API tabular eran: FeatureStore FeatureQuery FeatureSet Feature FeatureReference FeatureIndex FeatureStoreProvider, FeatureStoreProviderServices FeatureSetProvider FeatureProvider FeatureReferenceServices FeatureIndexProvider, FeatureIndexProviderServices

10 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Para algunas de las entidades XXXProvider DAL proporciana una implementacion por defecto mientras que para otras obligatorio que el proveedor las suministre. ● Hay implementaciones por defecto para: FeatureSetProvider (MemoryFeatureSetProvider o JDBCFeatureSetProvider) FeatureProvider (DefaultFeatureProvider) ● Debera suministrar una implementacion el proveedor para: FeatureStoreProvider FeatureIndexProvide Vamos a repasar una por una las entidades mas representativas del SPI de DAL

11 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Servicios de DAL hacia los proveedores de datos DataManagerProviderServices Extiende los servicios de DataManager con servicios de registro de Stores y ServerExplorers. FeatureStoreProviderServices Servicios de creacion, acceso y asignacion sobre los FeatureType de un store Acceso al DataManager asociado al store. Creacion y recuperacion de Feature a partir del FearureReferenceProvider. Creacion del DefaultFeatureSelection. Notificacion de eventos a los observadores del FeatureStore. Acceso al FeatureStore.

12 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Servicios de DAL hacia los proveedores de datos FeatureRerefenceProviderServices, extiendo los servicios del FeatureReference con: Acceso a su clave primaria Acceso a su OID. Informacion sobre si se trata de una referencia a una Feature nueva.

13 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Servicios de que debe suninistrar el proveedor de datos Los servicios mas importantes que debe proporcianar bienen definidos por el interface FeatureStoreProvider y la clase DataStoreParameters. FearureStoreProvider. Proporciona acceso a los datos del almacen Existe una clase abstract, AbstractFeatureStoreProvider, que nos proporcionara implementacion por defecto para muchas de sus funcionalidades DataStoreParameters. Proporciana informacion sobre los parametros necesarios para construir un almacen.

14 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Servicios que proporciana AbtractFeatureStoreProvicer. Acceso a FeatureStoreProviderServices mediante el metodo getStoreServices. Acceso a una implementacion por defecto para: FeatureProvider FeatureLocks FeatureSelection Acceso a los parametros de creacion del almacen a traves de getParameters. Soporte de metadatos.

15 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Ademas de unos servicios minimos, AbtractFeatureStoreProvicer, proporciana una configuracion por defecto. Soporte de escritura deshabilitado (allowWrite -> false). Soporte de bloqueos deshabilitado (isLocksSupported -> false). Soporte de valores automaticos deshabilitado (allocAutomaticValues -> false). Soporte de modo de edicion APPEND deshabilitado (supportsAppendMode -> false). Soporte de geometrias deshabilitado getEnvelop -> null, canWriteGeometry -> false. Asi mismo proporciana acceiones por defecto para los metodos: refresh close dispose

16 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● ¿ Que estaremos obligados a implementar de nuestro proveedor de datos ? createNewOID Como construye el almacen sus OID. createSet Implementacion de conjunto de datos del almacen a partir de un filtro. getFeatureCount Cuantas features tiene el almacen getFeatureProviderByReference Comorecuperar una feature a partir de un FeatureReference. getOIDType De que tipo son los OID getSourceId Como obtener un identificador del almacen. open Como se realiza la apertura e inicializacion del almacen.

17 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Tipos de proveedores Basados en disco. Los datos solo se cargan en memoria conforme van siendo solicitados Deberemos suministrar ademas implementacion para: FeatureSetProvider (con o sin soporte para filtrado). Iteradores sobre las features. Basados en memoria. Todos los datos del almacen son cargados en memoria para trabajar con ellos Disponesmos de la clase AbstractMemoryStoreProvider para ayudarnos a manejar este tipo de proveedores.

18 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● ¿ Que cosas serian las minimas que debe ● suministrar un proveedor de datos ? Un FeatureStoreProvider. Un DataStoreParameters. Podriamos acceder a los datos de un almacen Para abrirlo, deberiamos conocer todos sus parametros. Un usuario de gvSIG no tendria acceso a este tipo de almacenes Necesitariamos un ServerExplorar para porder navegar asta el almacen.

19 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Los DataServerExplorer proporcianan un API que nos permite : Interrogar que almacenes hay en un servidor Eliminar un almacen del servidor Crear un nuevo almacen en el servidor. Hay varios tipos de DataServerExplorer, dependiendo del servidor al que se quiera atacar. Asi podemos encontrarnos: FilesystemServerExplorer Da acceso a almacenes que residen en un filesystem. JDBCServerExplorer Nos da acceso a tablas de BBDD. WFSServerExplorer. Nos da acceso a almacenes de un servidor WFS.

20 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO ● Servicios a proveedores especificos ● de acceso a datos tabulares ● Cada DataServerExplorer, a su vez, puede disponer de un API para registrar tipos de alamcenes sobre el. En un FilesystemServerExplorer podemos encontrarnos almacenes de tipo DBF o DXF, asi que precisremos registrar que tipo de almacenes podemos encontrar en el. En un JDBCServerExplorer no podemos registrar tipos ya que solo soporta almacenes de tipo tabla de BBDD. ● Si queremos disponer de un almacen que resida en el filesystem, deberemos suministrar al FilesystemServerExplorer los medios para que pueda localizarlos, crearlos y eliminarlos. Para registrar un almacen en un FilesystemServerExplorer deberemos implementar un FilesystemServerExplorerProvider y registrarlo en el manager FilesystemServerExplorerManager.

21 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Creacion de un proveedor simple de datos en ficheros CSV Vamos a crear un proveedor de datos para ficheros CSV, cargando los datos en memoria. Para esto tendremos que crear: CSVStoreParameters. CSVReadOnlyStoreProvider. CSVNewStoreParameters. CSVFilesystemServerProvider. CSVLibrary En una primera aproximacion crearemos un proveedor con soporte solo para lectura y en una segunda le añadiremos soporte para escritura.

22 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Creacion de un proveedor simple de datos en ficheros CSV Para la creacion de nuestro proveedor de CSV utilizaremos la librería javacsv (net.sourceforge.javacsv). Empezaremos por implementar el CSVStoreParameters. Los parametros que vamos a implementar son: filepath, para referirnos al fichero CSV. charset, para indicar la codificacion de caracteres a usar en el fichero. header, para suministrar los nombres de columnas que haya en el CSV. hasHeader, para indicar si el fichero tiene una linea de cabezera o no. types, para suministrar los tipos de las columnas del CSV escapeMode, para configurar como escapa las comillas dentro del texto. Veamos como seria la implementacion del CSVStoreParameters. precisaremos: Una referencia statica a la DynClass que defina los parametros Un metodo registerDynClass que construya la DynClass y la registre Por comodidas una serie de constantes con los nombres de los parametros setters y getters que nos den acceso a los parametros.

23 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Creacion de un proveedor simple de datos en ficheros CSV Una vez implementado el CSVStoreParamters, implementaremos el CSVReadOnlyStoreProvider. aquí tendremos que tener en cuenta: Deberemos suministrar una forma de crear y registrar la DynClass asociada a los metadatos del proveedor (metodo registerDynClass).. En nuestro caso, deberemos suministrar implementacion para createNewOID y getOIDType. Para nuestro OID usaremos un long y un contador. En el constructor deberemos registrar un recurso asociado al fichero CSV. En el metodo open deberemos bloquear el recurso y liberarlo al terminar usando los metodos begin y end del recurso. Vamos a cachear las features a cargar de forma que esten compartidas por cualquier instancia del proveedor que acceda al fichero, asi que guardaremos en el recurso las features y sus tipos.

24 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Creacion de un proveedor simple de datos en ficheros CSV Una vez dispongamos de nuestro CSVReadOnlyStoreProvider y CSVStoreParameters, deberemos crear en nuestro proyecto un libreary para registrar el nuevo proveedor. public class CSVLibrary extends BaseLibrary { protected void doInitialize() throws ReferenceNotRegisteredException { CSVStoreParameters.registerDynClass(); CSVReadOnlyStoreProvider.registerDynClass(); DataManagerProviderServices manager = (DataManagerProviderServices) DALLocator.getDataManager(); manager.registerStoreProvider( CSVReadOnlyStoreProvider.NAME, CSVReadOnlyStoreProvider.class, CSVStoreParameters.class ); }

25 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Creacion de un proveedor simple de datos en ficheros CSV Si queremos añadirle soporte para escritura a nuestro proveedor, solo tendremos que deribar de nuestra clase CSVReadOnlyStoreProvider y añadirle los metodos: allowWrite performChanges Y en el library a la hora de registrar nuestro proveedor registrar solo el nuevo con soporte para escritura.... ● manager.registerStoreProvider( ● CSVReadOnlyStoreProvider.NAME, ● CSVReadWriteStoreProvider.class, ● CSVStoreParameters.class ● ); ●...

26 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Creacion de un proveedor simple de datos en ficheros CSV Para terminar nos quedaria proporcionar un CSVFilesystemServerProvider, para que el ServerExplorer basado en filesystem sea capaz de reconocer los ficheros CSV asociados al nuevo proveedor y que estos puedan ser abiertos por un usuario desde la aplicación gvSIG. Creariamos las clases: CSVFilesystemServerProvider CSVNewStoreParameters Y en el library las registrariamos en el FilesystemServerExplorer. ●... ● DALFileLocator.getFilesystemServerExplorerManager().registerProvider( ● CSVReadOnlyStoreProvider.NAME, ● CSVReadOnlyStoreProvider.DESCRIPTION, ● CSVFilesystemServerProvider.class ● ); ●...

27 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Creacion de un proveedor simple de datos en ficheros CSV Resumiendo, tendriamos quecrear las siguientes clases: CSVStoreParameters CSVStoreProvider (CSVReadOnlyStoreProvider o CSVReadWriteStoreProvider) CSVLibrary CSVFilesystemServerProvider CSVNewStoreParameters

28 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Esto es todo gracias por la asistencia. gvSIG: Avanzando Juntos http://www.gvsig.gva.es http://www.gvsig.org

29 gvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO gvSIG. Geographic Information System of the Valencian Government Copyright (C) 2007-2009 Infrastructures and Transports Department of the Valencian Government (CIT) This file is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.


Descargar ppt "GvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x APARTADO Introduccion a la creacion de proveedores de datos en DAL gvSIG: Avanzando Juntos."

Presentaciones similares


Anuncios Google