KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > jxpath > ri > model > jdom > JDOMNamespacePointer


1 /*
2  * Copyright 1999-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.jxpath.ri.model.jdom;
17
18 import org.apache.commons.jxpath.ri.QName;
19 import org.apache.commons.jxpath.ri.model.NodePointer;
20
21 /**
22  * Represents a namespace node.
23  *
24  * @author Dmitri Plotnikov
25  * @version $Revision: 1.9 $ $Date: 2004/04/01 02:55:31 $
26  */

27 public class JDOMNamespacePointer extends NodePointer {
28     private String JavaDoc prefix;
29     private String JavaDoc namespaceURI;
30
31     public JDOMNamespacePointer(NodePointer parent, String JavaDoc prefix) {
32         super(parent);
33         this.prefix = prefix;
34     }
35
36     public JDOMNamespacePointer(
37             NodePointer parent,
38             String JavaDoc prefix,
39             String JavaDoc namespaceURI)
40     {
41         super(parent);
42         this.prefix = prefix;
43         this.namespaceURI = namespaceURI;
44     }
45
46     public QName getName() {
47         return new QName(prefix);
48     }
49
50     public Object JavaDoc getBaseValue() {
51         return null;
52     }
53     
54     public boolean isCollection() {
55         return false;
56     }
57     
58     public int getLength() {
59         return 1;
60     }
61
62     public Object JavaDoc getImmediateNode() {
63         return getNamespaceURI();
64     }
65
66     public String JavaDoc getNamespaceURI() {
67         if (namespaceURI == null) {
68             namespaceURI = parent.getNamespaceURI(prefix);
69         }
70         return namespaceURI;
71     }
72
73     public boolean isLeaf() {
74         return true;
75     }
76
77     /**
78      * Throws UnsupportedOperationException.
79      */

80     public void setValue(Object JavaDoc value) {
81         throw new UnsupportedOperationException JavaDoc("Cannot modify a namespace");
82     }
83
84     public String JavaDoc asPath() {
85         StringBuffer JavaDoc buffer = new StringBuffer JavaDoc();
86         if (parent != null) {
87             buffer.append(parent.asPath());
88             if (buffer.length() == 0
89                 || buffer.charAt(buffer.length() - 1) != '/') {
90                 buffer.append('/');
91             }
92         }
93         buffer.append("namespace::");
94         buffer.append(prefix);
95         return buffer.toString();
96     }
97
98     public int hashCode() {
99         return prefix.hashCode();
100     }
101
102     public boolean equals(Object JavaDoc object) {
103         if (object == this) {
104             return true;
105         }
106
107         if (!(object instanceof JDOMNamespacePointer)) {
108             return false;
109         }
110
111         JDOMNamespacePointer other = (JDOMNamespacePointer) object;
112         return prefix.equals(other.prefix);
113     }
114
115     public int compareChildNodePointers(
116         NodePointer pointer1,
117         NodePointer pointer2)
118     {
119         // Won't happen - namespaces don't have children
120
return 0;
121     }
122  }
Popular Tags