KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > cocoon > portal > tools > generation > I18nCatalogueGenerator


1 /*
2  * Copyright 1999-2005 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.cocoon.portal.tools.generation;
17
18 import org.apache.avalon.framework.parameters.Parameters;
19 import org.apache.avalon.framework.service.ServiceException;
20 import org.apache.avalon.framework.service.ServiceManager;
21
22 import org.apache.cocoon.ProcessingException;
23 import org.apache.cocoon.environment.SourceResolver;
24 import org.apache.cocoon.generation.ServiceableGenerator;
25 import org.apache.cocoon.portal.tools.PortalToolCatalogue;
26 import org.apache.cocoon.portal.tools.PortalToolManager;
27 import org.apache.cocoon.xml.IncludeXMLConsumer;
28 import org.apache.cocoon.xml.XMLUtils;
29
30 import org.apache.excalibur.source.Source;
31 import org.apache.excalibur.xml.sax.SAXParser;
32 import org.xml.sax.InputSource JavaDoc;
33 import org.xml.sax.SAXException JavaDoc;
34
35 import java.io.IOException JavaDoc;
36 import java.net.MalformedURLException JavaDoc;
37 import java.util.Iterator JavaDoc;
38 import java.util.List JavaDoc;
39 import java.util.Map JavaDoc;
40
41 /**
42  *
43  * @version $Id: I18nCatalogueGenerator.java 164808 2005-04-26 16:07:03Z vgritsenko $
44  */

45 public class I18nCatalogueGenerator extends ServiceableGenerator {
46
47     private SAXParser parser;
48     private PortalToolManager ptm;
49     private final String JavaDoc CATALOGUE_TAG = "catalogue";
50     private String JavaDoc lang = ".xml";
51
52     /* (non-Javadoc)
53      * @see org.apache.cocoon.generation.Generator#generate()
54      */

55     public void generate()
56     throws IOException JavaDoc, SAXException JavaDoc, ProcessingException {
57         this.xmlConsumer.startDocument();
58         this.xmlConsumer.startElement("", CATALOGUE_TAG, CATALOGUE_TAG, XMLUtils.EMPTY_ATTRIBUTES);
59             List JavaDoc cats = ptm.getI18n();
60             for(Iterator JavaDoc it = cats.iterator(); it.hasNext();) {
61                 PortalToolCatalogue ptc = (PortalToolCatalogue) it.next();
62                 try {
63                     Source cat;
64                     cat = resolver.resolveURI(ptc.getLocation() + ptc.getName() + lang);
65                     IncludeXMLConsumer ixc = new IncludeXMLConsumer(this.xmlConsumer);
66                     ixc.setIgnoreRootElement(true);
67                     this.parser.parse(new InputSource JavaDoc(cat.getInputStream()), ixc);
68                 } catch (MalformedURLException JavaDoc e) {
69                     // ignore
70
} catch (IOException JavaDoc e) {
71                     // ignore
72
}
73             }
74         this.xmlConsumer.endElement("", CATALOGUE_TAG, CATALOGUE_TAG);
75         this.xmlConsumer.endDocument();
76     }
77
78     /* (non-Javadoc)
79      * @see org.apache.cocoon.sitemap.SitemapModelComponent#setup(org.apache.cocoon.environment.SourceResolver, java.util.Map, java.lang.String, org.apache.avalon.framework.parameters.Parameters)
80      */

81     public void setup(SourceResolver resolver, Map JavaDoc objectModel, String JavaDoc src, Parameters par)
82                         throws ProcessingException, SAXException JavaDoc, IOException JavaDoc {
83         super.setup(resolver, objectModel, src, par);
84         if(src.indexOf("_") != -1) {
85             this.lang = src.substring(src.indexOf("_"), src.length());
86             this.lang = this.lang.toLowerCase();
87         }
88
89     }
90
91     /* (non-Javadoc)
92      * @see org.apache.cocoon.generation.ServiceableGenerator#service(org.apache.avalon.framework.service.ServiceManager)
93      */

94     public void service(ServiceManager manager) throws ServiceException {
95         super.service(manager);
96         this.parser = (SAXParser)this.manager.lookup(SAXParser.ROLE);
97         ptm = (PortalToolManager) this.manager.lookup(PortalToolManager.ROLE);
98     }
99
100     /* (non-Javadoc)
101      * @see org.apache.cocoon.generation.ServiceableGenerator#dispose()
102      */

103     public void dispose() {
104         super.dispose();
105         this.manager.release(this.parser);
106         this.manager.release(this.ptm);
107     }
108 }
109
Popular Tags