KickJava   Java API By Example, From Geeks To Geeks.

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


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  * float property ranges.
34  *
35  * @author Michael Bell
36  * @version $Revision: 1.2 $
37  * @since November 20, 2003
38  */

39 public class DAVFloatRange extends DAVRange {
40
41     /**
42      * @param dsi
43      */

44     public DAVFloatRange(AbstractDataStoreInterface dsi) {
45         super(dsi,new FloatRange());
46         
47     }
48
49     /**
50      * @param dsi
51      * @param range
52      */

53     public DAVFloatRange(AbstractDataStoreInterface dsi, Range range) {
54         super(dsi, range);
55         
56     }
57
58     /**
59      * @param dsi
60      * @param davPropEl
61      */

62     public DAVFloatRange(AbstractDataStoreInterface dsi, Element JavaDoc davPropEl) throws WebDAVException {
63         super(dsi,new FloatRange(), davPropEl);
64     }
65
66     
67     /* (non-Javadoc)
68      * @see org.openharmonise.dav.server.property.ranges.DAVRange#addRangeDetails(org.w3c.dom.Element, org.openharmonise.rm.resources.metadata.properties.ranges.Range, org.w3c.dom.Document)
69      */

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

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