KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openharmonise > dav > server > property > ranges > DAVIntegerRange


1 /*
2  * The contents of this file are subject to the
3  * Mozilla Public License Version 1.1 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at http://www.mozilla.org/MPL/
6  *
7  * Software distributed under the License is distributed on an "AS IS"
8  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
9  * See the License for the specific language governing rights and
10  * limitations under the License.
11  *
12  * The Initial Developer of the Original Code is Simulacra Media Ltd.
13  * Portions created by Simulacra Media Ltd are Copyright (C) Simulacra Media Ltd, 2004.
14  *
15  * All Rights Reserved.
16  *
17  * Contributor(s):
18  */

19
20 package org.openharmonise.dav.server.property.ranges;
21
22 import org.openharmonise.commons.dsi.*;
23 import org.openharmonise.commons.xml.*;
24 import org.openharmonise.commons.xml.namespace.*;
25 import org.openharmonise.rm.resources.metadata.properties.ranges.*;
26 import org.w3c.dom.Document JavaDoc;
27 import org.w3c.dom.Element JavaDoc;
28
29 import com.ibm.webdav.WebDAVException;
30
31 /**
32  * A subclass of <code>DAVRange</code> which handles
33  * integer property ranges.
34  *
35  * @author Michael Bell
36  * @version $Revision: 1.2 $
37  * @since November 20, 2003
38  */

39 public class DAVIntegerRange extends DAVRange {
40
41     /**
42      * @param dsi
43      * @param davPropEl
44      */

45     public DAVIntegerRange(AbstractDataStoreInterface dsi, Element JavaDoc davPropEl) throws WebDAVException {
46
47         super(dsi,new IntegerRange(),davPropEl);
48     }
49
50     /**
51      * @param dsi
52      */

53     public DAVIntegerRange(AbstractDataStoreInterface dsi) {
54         super(dsi,new IntegerRange());
55     }
56
57     /**
58      * @param dsi
59      * @param range
60      */

61     public DAVIntegerRange(AbstractDataStoreInterface dsi, Range range) {
62         super(dsi, range);
63     }
64
65     /**
66      * Adds range details for to the given range element for number ranges.
67      *
68      * @param rangeEl
69      * @param range
70      * @param doc
71      * @throws WebDAVException
72      */

73     protected void addRangeDetails(
74         Element JavaDoc rangeEl,
75         Range range,
76         Document JavaDoc doc) {
77
78         Element JavaDoc restrEl =
79             doc.createElementNS(
80             NamespaceType.XML_SCHEMA.getURI(),
81                 TAG_RESTRICTION);
82         restrEl.setPrefix(NamespaceType.XML_SCHEMA.getPrefix());
83
84         String JavaDoc sType = null;
85         sType = TYPE_INTEGER;
86
87         IntegerRange intRange = (IntegerRange) range;
88
89         if (intRange.hasMin() == true) {
90             String JavaDoc sTag = TAG_MININCLUSIVE;
91             if (intRange.isMinExclusive() == true) {
92                 sTag = TAG_MINEXCLUSIVE;
93             }
94
95             Element JavaDoc minEl =
96                 doc.createElementNS(
97                     NamespaceType.XML_SCHEMA.getURI(),
98                     sTag);
99             minEl.setPrefix(NamespaceType.XML_SCHEMA.getPrefix());
100             minEl.appendChild(
101                 doc.createTextNode(String.valueOf(intRange.getMin())));
102
103             restrEl.appendChild(minEl);
104         }
105
106         if (intRange.hasMax() == true) {
107             String JavaDoc sTag = TAG_MAXINCLUSIVE;
108             if (intRange.isMaxExclusive() == true) {
109                 sTag = TAG_MAXEXCLUSIVE;
110             }
111
112             Element JavaDoc maxEl =
113                 doc.createElementNS(
114                     NamespaceType.XML_SCHEMA.getURI(),
115                     sTag);
116             maxEl.setPrefix(NamespaceType.XML_SCHEMA.getPrefix());
117             maxEl.appendChild(
118                 doc.createTextNode(String.valueOf(intRange.getMax())));
119             restrEl.appendChild(maxEl);
120         }
121
122         restrEl.setAttributeNS(NamespaceType.XML_SCHEMA.getURI(), ATTRIB_PREFIXED_BASE, sType);
123
124         restrEl.setAttribute("xmlns:" + NamespaceType.XML_SCHEMA.getPrefix(), NamespaceType.XML_SCHEMA.getURI());
125
126
127         rangeEl.appendChild(restrEl);
128     }
129
130     
131     /* (non-Javadoc)
132      * @see org.openharmonise.dav.server.property.ranges.DAVRange#populate(org.w3c.dom.Element)
133      */

134     public void populate(Element JavaDoc propEl) throws WebDAVException {
135         IntegerRange range = (IntegerRange) m_range;
136         
137         Element JavaDoc restrEl = XMLUtils.getFirstNamedChild(propEl, TAG_RESTRICTION);
138         
139         Element JavaDoc maxEl = XMLUtils.getFirstNamedChild(restrEl,TAG_MAXEXCLUSIVE);
140         
141         if(maxEl != null) {
142             String JavaDoc sVal = maxEl.getChildNodes().item(0).getNodeValue();
143             range.setMax(Integer.parseInt(sVal),true);
144         }
145         
146         maxEl = XMLUtils.getFirstNamedChild(restrEl,TAG_MAXINCLUSIVE);
147         
148         if(maxEl != null) {
149             String JavaDoc sVal = maxEl.getChildNodes().item(0).getNodeValue();
150             range.setMax(Integer.parseInt(sVal),false);
151         }
152         
153         Element JavaDoc minEl = XMLUtils.getFirstNamedChild(restrEl,TAG_MINEXCLUSIVE);
154         
155         if(minEl != null) {
156             String JavaDoc sVal = minEl.getChildNodes().item(0).getNodeValue();
157             range.setMin(Integer.parseInt(sVal),true);
158         }
159         
160         minEl = XMLUtils.getFirstNamedChild(restrEl,TAG_MININCLUSIVE);
161         
162         if(minEl != null) {
163             String JavaDoc sVal = minEl.getChildNodes().item(0).getNodeValue();
164             range.setMin(Integer.parseInt(sVal),false);
165         }
166         
167     }
168
169 }
170
Popular Tags