KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > jxpath > ri > model > beans > NullPointer


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.beans;
17
18 import java.util.Locale JavaDoc;
19
20 import org.apache.commons.jxpath.JXPathContext;
21 import org.apache.commons.jxpath.ri.QName;
22 import org.apache.commons.jxpath.ri.model.NodePointer;
23
24 /**
25  * @author Dmitri Plotnikov
26  * @version $Revision: 1.11 $ $Date: 2004/02/29 14:17:41 $
27  */

28 public class NullPointer extends PropertyOwnerPointer {
29     private QName name;
30     private String JavaDoc id;
31
32     public NullPointer(QName name, Locale JavaDoc locale) {
33         super(null, locale);
34         this.name = name;
35     }
36
37     /**
38      * Used for the root node
39      */

40     public NullPointer(NodePointer parent, QName name) {
41         super(parent);
42         this.name = name;
43     }
44
45     public NullPointer(Locale JavaDoc locale, String JavaDoc id) {
46         super(null, locale);
47         this.id = id;
48     }
49
50     public QName getName() {
51         return name;
52     }
53
54     public Object JavaDoc getBaseValue() {
55         return null;
56     }
57     
58     public boolean isCollection() {
59         return false;
60     }
61
62     public boolean isLeaf() {
63         return true;
64     }
65
66     public boolean isActual() {
67         return false;
68     }
69
70     public PropertyPointer getPropertyPointer() {
71         return new NullPropertyPointer(this);
72     }
73
74     public NodePointer createPath(JXPathContext context, Object JavaDoc value) {
75         if (parent != null) {
76             return parent.createPath(context, value).getValuePointer();
77         }
78         else {
79             throw new UnsupportedOperationException JavaDoc(
80                 "Cannot create the root object: " + asPath());
81         }
82     }
83
84     public NodePointer createPath(JXPathContext context) {
85         if (parent != null) {
86             return parent.createPath(context).getValuePointer();
87         }
88         else {
89             throw new UnsupportedOperationException JavaDoc(
90                 "Cannot create the root object: " + asPath());
91         }
92     }
93
94     public NodePointer createChild(
95         JXPathContext context,
96         QName name,
97         int index)
98     {
99         return createPath(context).createChild(context, name, index);
100     }
101
102     public NodePointer createChild(
103         JXPathContext context,
104         QName name,
105         int index,
106         Object JavaDoc value)
107     {
108         return createPath(context).createChild(context, name, index, value);
109     }
110
111     public int hashCode() {
112         return name == null ? 0 : name.hashCode();
113     }
114
115     public boolean equals(Object JavaDoc object) {
116         if (object == this) {
117             return true;
118         }
119
120         if (!(object instanceof NullPointer)) {
121             return false;
122         }
123
124         NullPointer other = (NullPointer) object;
125         return (name == null && other.name == null)
126             || (name != null && name.equals(other.name));
127     }
128
129     public String JavaDoc asPath() {
130         if (id != null) {
131             return "id(" + id + ")";
132         }
133
134         if (parent != null) {
135             return super.asPath();
136         }
137         return "null()";
138     }
139
140     public int getLength() {
141         return 0;
142     }
143 }
Popular Tags