1 19 20 package org.openharmonise.dav.server.property.ranges; 21 22 import org.openharmonise.commons.dsi.*; 23 import org.openharmonise.commons.xml.namespace.*; 24 import org.openharmonise.rm.resources.metadata.properties.ranges.*; 25 import org.w3c.dom.*; 26 27 import com.ibm.webdav.*; 28 29 37 public class DAVStringRange extends DAVRange { 38 39 43 public DAVStringRange(AbstractDataStoreInterface dsi, Element davPropEl) throws WebDAVException { 44 super(dsi,new StringRange(),davPropEl); 45 } 46 47 50 public DAVStringRange(AbstractDataStoreInterface dsi) { 51 super(dsi); 52 } 53 54 58 public DAVStringRange(AbstractDataStoreInterface dsi, Range range) { 59 super(dsi, range); 60 } 61 62 63 71 protected void addRangeDetails( 72 Element rangeEl, 73 Range range, 74 Document doc) throws WebDAVException { 75 76 StringRange strRange = (StringRange) range; 77 78 Element restrEl = 79 doc.createElementNS( 80 NamespaceType.XML_SCHEMA.getURI(), 81 TAG_RESTRICTION); 82 restrEl.setPrefix(NamespaceType.XML_SCHEMA.getPrefix()); 83 84 restrEl.setAttributeNS(NamespaceType.XML_SCHEMA.getURI(), ATTRIB_PREFIXED_BASE, TYPE_STRING); 85 86 restrEl.setAttribute("xmlns:" + NamespaceType.XML_SCHEMA.getPrefix(), NamespaceType.XML_SCHEMA.getURI()); 87 88 89 int nMin = strRange.getMinLength(); 90 if (nMin >= 0) { 91 92 Element minEl = 93 doc.createElementNS( 94 NamespaceType.XML_SCHEMA.getURI(), 95 TAG_MINLENGTH); 96 minEl.setPrefix(NamespaceType.XML_SCHEMA.getPrefix()); 97 98 minEl.appendChild(doc.createTextNode(String.valueOf(nMin))); 99 100 restrEl.appendChild(minEl); 101 } 102 103 int nMax = strRange.getMaxLength(); 104 if (nMax >= 0) { 105 106 Element maxEl = 107 doc.createElementNS( 108 NamespaceType.XML_SCHEMA.getURI(), 109 TAG_MAXLENGTH); 110 maxEl.setPrefix(NamespaceType.XML_SCHEMA.getPrefix()); 111 112 maxEl.appendChild(doc.createTextNode(String.valueOf(nMax))); 113 114 restrEl.appendChild(maxEl); 115 } 116 117 rangeEl.appendChild(restrEl); 118 } 119 120 123 public void populate(Element propEl) throws WebDAVException { 124 StringRange range = (StringRange) m_range; 125 126 try { 127 NodeList maxNodes = propEl.getElementsByTagNameNS(NamespaceType.XML_SCHEMA.getURI(),TAG_MAXLENGTH); 128 129 if(maxNodes.getLength()>0) { 130 String sVal = maxNodes.item(0).getChildNodes().item(0).getNodeValue(); 131 range.setMaxLength(Integer.parseInt(sVal)); 132 } 133 134 NodeList minNodes = propEl.getElementsByTagNameNS(NamespaceType.XML_SCHEMA.getURI(),TAG_MINLENGTH); 135 136 if(minNodes.getLength()>0) { 137 String sVal = minNodes.item(0).getChildNodes().item(0).getNodeValue(); 138 range.setMinLength(Integer.parseInt(sVal)); 139 } 140 } catch (InvalidRangeRestrictionException e) { 141 throw new WebDAVException(WebDAVStatus.SC_BAD_REQUEST, "Invalid range restriction"); 142 } 143 } 144 } 145 | Popular Tags |