The alternative is to simply stick with the method of copying the featuring to a list in memory.

Like Andrea said earlier, GetFeatureInfo isn't meant to get a long list of Features. Usually even just one.

*Normally* there shouldn't be a problem. I guess I'll just give up on trying to do it otherwise :/

Niels

On 25/01/11 17:22, Jody Garnett wrote:
One thing you can do (do you control the html template that is looping over features?) You could add some logic to check if the iterator implements FeatureIterator and if so close it at the end?

Jody

On 25/01/2011, at 6:18 PM, Niels wrote:

This works fine, but what is a pity is that in theory there is no absolute guarantee that the iterator will be closed. It is possible to do a break inside a collection loop in your template, and not finishing with the last item. I don't see why you would do that with features, and it is not done in any of the existing template I think, but... can we maybe include in the documentation that it is not advised to a break when looping over the features in a HTML template?

On 25/01/11 15:34, Niels wrote:

Well one evil thing to do would be to scan through once and collect the feature ids (perhaps you could do that efficiently?); and then make a collection that produces an iterator that fetches the matching feature for each feature id in turn?

Not the best idea; but something.

The problem with that would be performance again.

But I'm looking at something now that might work. Textmarker actually has its own Iterator model, and what I am doing is implementing that one, which wraps a FeatureIterator and automatically closes after the last read. Something like this:

|public TemplateModel next() throws TemplateModelException {
        if (!hasNext) {
            return null;
        }
        Object o = iterator.next();
        hasNext = iterator.hasNext();
        if (!hasNext) {
            iterator.close();
        }
        return new BeanModel(o, wrapper);
    }|

--
*Niels Charlier*

Software Engineer
CSIRO Earth Science and Resource Engineering
Phone: +61 8 6436 8914

Australian Resources Research Centre
26 Dick Perry Avenue, Kensington WA 6151


--
*Niels Charlier*

Software Engineer
CSIRO Earth Science and Resource Engineering
Phone: +61 8 6436 8914

Australian Resources Research Centre
26 Dick Perry Avenue, Kensington WA 6151
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel



--
*Niels Charlier*

Software Engineer
CSIRO Earth Science and Resource Engineering
Phone: +61 8 6436 8914

Australian Resources Research Centre
26 Dick Perry Avenue, Kensington WA 6151
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to