1 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 ; 27 import org.w3c.dom.Element ; 28 29 import com.ibm.webdav.WebDAVException; 30 31 39 public class DAVIntegerRange extends DAVRange { 40 41 45 public DAVIntegerRange(AbstractDataStoreInterface dsi, Element davPropEl) throws WebDAVException { 46 47 super(dsi,new IntegerRange(),davPropEl); 48 } 49 50 53 public DAVIntegerRange(AbstractDataStoreInterface dsi) { 54 super(dsi,new IntegerRange()); 55 } 56 57 61 public DAVIntegerRange(AbstractDataStoreInterface dsi, Range range) { 62 super(dsi, range); 63 } 64 65 73 protected void addRangeDetails( 74 Element rangeEl, 75 Range range, 76 Document doc) { 77 78 Element restrEl = 79 doc.createElementNS( 80 NamespaceType.XML_SCHEMA.getURI(), 81 TAG_RESTRICTION); 82 restrEl.setPrefix(NamespaceType.XML_SCHEMA.getPrefix()); 83 84 String sType = null; 85 sType = TYPE_INTEGER; 86 87 IntegerRange intRange = (IntegerRange) range; 88 89 if (intRange.hasMin() == true) { 90 String sTag = TAG_MININCLUSIVE; 91 if (intRange.isMinExclusive() == true) { 92 sTag = TAG_MINEXCLUSIVE; 93 } 94 95 Element 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 sTag = TAG_MAXINCLUSIVE; 108 if (intRange.isMaxExclusive() == true) { 109 sTag = TAG_MAXEXCLUSIVE; 110 } 111 112 Element 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 134 public void populate(Element propEl) throws WebDAVException { 135 IntegerRange range = (IntegerRange) m_range; 136 137 Element restrEl = XMLUtils.getFirstNamedChild(propEl, TAG_RESTRICTION); 138 139 Element maxEl = XMLUtils.getFirstNamedChild(restrEl,TAG_MAXEXCLUSIVE); 140 141 if(maxEl != null) { 142 String 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 sVal = maxEl.getChildNodes().item(0).getNodeValue(); 150 range.setMax(Integer.parseInt(sVal),false); 151 } 152 153 Element minEl = XMLUtils.getFirstNamedChild(restrEl,TAG_MINEXCLUSIVE); 154 155 if(minEl != null) { 156 String 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 sVal = minEl.getChildNodes().item(0).getNodeValue(); 164 range.setMin(Integer.parseInt(sVal),false); 165 } 166 167 } 168 169 } 170 | Popular Tags |