Buenas Javier.

Perdón por el lapsus :-[ . Le completo el ejemplo con la parte que falta y le modifico el filtro:

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

Filter layerFilter = nullFilter.not();

Saludos,

Javier Andres García Galarza escribió:
Muchas gracias por tu respuesta Sergio, justamente esta solucion soluciona mi problema, he implementado lo que proponoes solamente tengo un problema con el filtro > AttributeExpression attribute = new AttributeExpressionImpl2("the_geom");
> NullFilter nullFilter = factory.createNullFilter();
> nullFilter.setNullCheckValue(attribute);

la funcion factory.createNullFilter() no existe para la clase GeometryFactory, entonces lo implementé de la siguiente forma para probar: AttributeExpression attribute = new AttributeExpressionImpl2("the_geom");
 NullFilter nullFilter = new NullFilter();
 nullFilter.setNullCheckValue(attribute);

y efectivamente el filtro se agrega a todas las consultas sobre la caapa, solamente que alontrario de mis requerimientos este filtro carga las tuplas de la tabla con la condicion "the_geom IS NULL" y lo que yo necesito es "the_geom IS NOT NULL" Les agradeceria mucho su ayuda ya que solamente con ese pequeño detalle se solucionarian mis problemas, Muchas Gracias y Saludos desde Ecuador!!



>
> 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
>
>
> Fin de Resumen de Kosmo, Vol 30, Envío 3
> ****************************************


Discover the new Windows Vista Learn more! <http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE>
------------------------------------------------------------------------

_______________________________________________
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