cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simone Tripodi <simonetrip...@apache.org>
Subject Re: question regarding chainability of methods current API
Date Wed, 06 Jul 2011 12:43:33 GMT
Hi Robby!
that feature is already available, have a look at the cocoon-sax
'builder'[1] package!
Your first email was received, maybe there was just a minor async
issue on your provider.
HTH, have a nice day!
All the best,
Simo

[1] http://s.apache.org/dZm

http://people.apache.org/~simonetripodi/
http://www.99soft.org/



On Wed, Jul 6, 2011 at 10:46 AM, Robby Pelssers
<robby.pelssers@ciber.com> wrote:
>
> Hi Simone,
>
> I have one question to the current interface of Pipeline.  I know you wrote a SAXPipelineBuilder
to allow chaining.
>
> But it would have been much nicer if the Pipeline interface itself would have been chainable.
>
> void addComponent(T pipelineComponent);  -->     Pipeline<T> addComponent(T
pipelineComponent);
>
> void setup(OutputStream outputStream);   -->     Pipeline<T> setup)(OutputStream
outputStream);
>
> Same for other methods for which it makes sense to chain them.
>
> This would allow me to switch from
>
>        @Test
>        public void testXQuery1() throws Exception {
>            Map<String, Object> parameters = new HashMap<String, Object>();
>            parameters.put("sentence", "split words test");
>            XQJGenerator generator = new XQJGenerator(this.getClass().getResource("/xquery/stringtest.xquery"));
>            generator.setXQDataSource(xqds);
>            Pipeline<SAXPipelineComponent> pipeline = new NonCachingPipeline<SAXPipelineComponent>();
>            pipeline.addComponent(generator);
>            pipeline.addComponent(new XMLSerializer().setIndent(true));
>            pipeline.setup(System.out, parameters);
>            pipeline.execute();
>        }
>
> to
>
>        @Test
>        public void testXQuery1() throws Exception {
>            Map<String, Object> parameters = new HashMap<String, Object>();
>            parameters.put("sentence", "split words test");
>            XQJGenerator generator = new XQJGenerator(this.getClass().getResource("/xquery/stringtest.xquery"));
>            generator.setXQDataSource(xqds);
>            Pipeline<SAXPipelineComponent> pipeline =
>               new NonCachingPipeline<SAXPipelineComponent>()
>               .addComponent(generator)
>               .addComponent(new XMLSerializer().setIndent(true))
>               .setup(System.out, parameters)
>               .execute();
>        }
>
> which basically is what you intended to achieve if i'm correct.
>
> I know it's quite a big API change but designing the API with chainability in mind makes
sense.
>
> Robby
>
>
>

Mime
View raw message