Buenos días Javier.

Existe otra posibilidad que no comentó Paco en sus correos que creo que sería la más adecuada de implementar, aparte de que le evitaría tener que modificar la mayoría de métodos de los datasources.

En la clase org.saig.core.dao.datasource.AbstractDataSource (de la que heredan el resto de orígenes de datos) está definido el campo "layerFilter", que permite añadir de manera transparente para el usuario/programador un filtro a todas las consultas que se realicen contra la capa. En su caso, el filtro que se debería asociar sería el siguiente:

AttributeExpression attribute = new AttributeExpressionImpl2("the_geom");
NullFilter nullFilter = factory.createNullFilter();
nullFilter.setNullCheckValue(attribute);

Con esto no sería necesario que modificase el código del PostgisDataSource, simplemente en el constructor de su clase extendida establezca el filtro anterior.

Un cordial saludo,

Javier Andres García Galarza escribió:
Muchisimas gracias Francisco por tus tres respuestas... para nuestra implementacion hemos decidido usar la opcion de modificar el codigo usando un filtro, este momento he creado una clase que hereda de PostgisDataSource sobreescribiendo la funcion getSqlOnlyGeometryForQuery(..) que es donde creo que debo implementar el filtro para que no cargue las tuplas con el campo geomtría nulo, como creo un CompareFilter para lograr una consulta como la siguiente?? where ...AND the_geom IS NOT NULL.... he probado aumentando la condicion solamente añadiendo la condicion como cadena ala variable " consultaSQL" y funciona, pero cuando se consulta la tabla de atributos aparece una fila con valores todos en NULL para la tupla con the_geom = NULL algo asi GID NOMBRE
------------------
61      Nombre61
NULL   NULL
62      Nombre62
mirando la consola en modo debug, observo que todas las consultas si contienen la condicion ...AND the_geom IS NOT NULL.... que agrgué. Muchas gracias por su ayuda, y Saludos!!! >Hola de nuevo Javier,

>creo que mi respuesta anterior no responde a lo que estabas preguntando.
>Me acabo de dar cuenta de que lo que deseas es evitar que Kosmo cargue
>en memoria los elementos que no son visibles, con la regla de estilo
>sólo se consigue que no se muestren pero siguen estando en memoria.
>
>Te pongo un ejemplo de uso de filtros:
>
>CompareFilter compareFilter = new
>CompareFilterImpl(AbstractFilter.COMPARE_EQUALS);
>compareFilter.addLeftValue(new AttributeExpressionImpl2(attributeName));
>compareFilter.addRightValue(new LiteralExpressionImpl(value));
>
>Espero que esto sí te sirva. Un saludo.
>
>
>Francisco Abato Helguera



Javier Andres Garcia G.
Connect to the next generation of MSN Messenger Get it now! <http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline>
------------------------------------------------------------------------

_______________________________________________
Kosmo mailing list
[email protected]
http://lists.saig.es/mailman/listinfo/kosmo

--

Sergio Baños Calvo

Jefe de desarrollos
Sistemas Abiertos de Información Geográfica, S.L. (SAIG S.L.)
Tlfno. móvil: 685005960
Tlfno. fijo: (+34) 954788876

E-mail: [EMAIL PROTECTED]

_______________________________________________
Kosmo mailing list
[email protected]
http://lists.saig.es/mailman/listinfo/kosmo

Responder a