Return-Path: Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: (qmail 88149 invoked from network); 28 Apr 2004 22:05:25 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 28 Apr 2004 22:05:25 -0000 Received: (qmail 6990 invoked by uid 500); 28 Apr 2004 22:05:01 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 6968 invoked by uid 500); 28 Apr 2004 22:05:01 -0000 Mailing-List: contact dev-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: dev@cocoon.apache.org Delivered-To: mailing list dev@cocoon.apache.org Received: (qmail 6913 invoked from network); 28 Apr 2004 22:05:00 -0000 Received: from unknown (HELO grid4.hypergrid.it) (80.22.58.138) by daedalus.apache.org with SMTP; 28 Apr 2004 22:05:00 -0000 Received: (qmail 32715 invoked by uid 1005); 28 Apr 2004 22:05:06 -0000 Received: from ugo@apache.org by mail with HyperGrid Anti-Virus System Processed in 5.195472 secs; 28 Apr 2004 22:05:06 -0000 Received: from unknown (HELO ?80.183.30.251?) (ugo.cei@ymail.it@80.183.30.251) by 0 with RC4-SHA encrypted SMTP; 28 Apr 2004 22:05:00 -0000 Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: <20040428184446.GB24711@wlkp.org> References: <1E0CC447E59C974CA5C7160D2A2854EC02FECD6D@SJMEMXMB04.stjude.sjcrh.local> <20040428184446.GB24711@wlkp.org> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <1AA66E06-9960-11D8-AC29-000A95DC4186@apache.org> Content-Transfer-Encoding: 7bit From: Ugo Cei Subject: Re: generator type value substitution Date: Thu, 29 Apr 2004 00:05:05 +0200 To: dev@cocoon.apache.org X-Mailer: Apple Mail (2.613) X-Spam-Checker-Version: SpamAssassin 3.0.0-r9592-hypergrid (2004-03-18) on mail.hypergrid.it X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Il giorno 28/apr/04, alle 20:44, Leszek Gawron ha scritto: >> Missed the original e-mail, why not just push the problem down a >> level: >> >> >> >> SuperGenerator can then figure out what to do by looking at the >> source... > I have already thought of that but the problemis that here the > "source" is the > generator name. Do you know how should I lookup a generator, setup it > properly > (to support map:parameter for example) and than invoke it? with > everything > done not to break sitemap reloading (new generators may come in place, > old may > be deleted), caching and other stuff I cannot really comprehend :) Wrap and delegate: public class SuperGenerator implements Generator { Generator specialGenerator; public void setup(SourceResolver resolver, Map objectModel, String srcURI, Parameters par) { specialGenerator = (Generator) Class.forName(par.getParameter("class")).newInstance(); specialGenerator.setup(resolver, objectModel, srcURI, par); } public void generate() { specialGenerator.generate(); } } You could also make all your generators Avalon components and retrieve them via a ServiceManager, if you wish, instead of using Class.forName. Hope you get the idea. Ugo