KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > jelly > parser > DefaultNamespaceFilter


1 /*
2  * Copyright 2002,2004 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.commons.jelly.parser;
17
18 import org.xml.sax.Attributes JavaDoc;
19 import org.xml.sax.SAXException JavaDoc;
20 import org.xml.sax.XMLReader JavaDoc;
21 import org.xml.sax.helpers.XMLFilterImpl JavaDoc;
22
23 /**
24  * XMLFilter that can provide a default namespace when
25  * one has not been declared by the XML document. Note:
26  * this class does not address the namespace of attributes.
27  *
28  * @author Morgan Delagrange
29  */

30 public class DefaultNamespaceFilter extends XMLFilterImpl JavaDoc {
31
32     protected String JavaDoc uriDefault = null;
33
34     /**
35      * Filter for undefined an undefined namespace
36      *
37      * @param defaultNamespace
38      * uri for the jelly namespace
39      * @param reader XMLReader to filter
40      */

41     public DefaultNamespaceFilter(String JavaDoc defaultNamespace, XMLReader JavaDoc reader) {
42         super(reader);
43         this.uriDefault = defaultNamespace;
44     }
45
46     /**
47      * All incoming empty URIs will be remapped to the default.
48      *
49      * @param prefix incoming prefix
50      * @param uri URI to check and potentially replace
51      * @exception SAXException
52      */

53     public void startPrefixMapping(java.lang.String JavaDoc prefix,
54                                    java.lang.String JavaDoc uri)
55     throws SAXException JavaDoc {
56
57         if (uri.equals("")) {
58             super.startPrefixMapping(prefix,this.uriDefault);
59         } else {
60             super.startPrefixMapping(prefix,uri);
61         }
62     }
63
64     /**
65      * All incoming empty URIs will be remapped to the default.
66      *
67      * @param uri URI to check and potentially replace
68      * @param localName
69      * @param qName
70      * @param atts
71      * @exception SAXException
72      */

73     public void startElement(java.lang.String JavaDoc uri,
74                              java.lang.String JavaDoc localName,
75                              java.lang.String JavaDoc qName,
76                              Attributes JavaDoc atts)
77     throws SAXException JavaDoc {
78
79         if (uri.equals("")) {
80             super.startElement(this.uriDefault,localName,qName,atts);
81         } else {
82             super.startElement(uri,localName,qName,atts);
83         }
84
85     }
86
87     /**
88      * All incoming empty URIs will be remapped to the default.
89      *
90      * @param namespaceURI
91      * URI to check and potentially replace
92      * @param localName
93      * @param qName
94      * @exception SAXException
95      */

96     public void endElement(String JavaDoc namespaceURI, String JavaDoc localName, String JavaDoc qName)
97     throws SAXException JavaDoc {
98         if (namespaceURI.equals("")) {
99             super.endElement(this.uriDefault,localName,qName);
100         } else {
101             super.endElement(namespaceURI,localName,qName);
102         }
103     }
104 }
Popular Tags