1 19 20 package org.openharmonise.dav.server.property.ranges; 21 22 import java.util.*; 23 24 import org.openharmonise.commons.dsi.*; 25 import org.openharmonise.commons.xml.*; 26 import org.openharmonise.commons.xml.namespace.*; 27 import org.openharmonise.dav.server.managers.*; 28 import org.openharmonise.dav.server.utils.*; 29 import org.openharmonise.rm.resources.*; 30 import org.openharmonise.rm.resources.metadata.properties.ranges.*; 31 import org.w3c.dom.*; 32 33 import com.ibm.webdav.*; 34 35 45 public class DAVRelativeObjectRange extends DAVRange { 46 47 50 public DAVRelativeObjectRange(AbstractDataStoreInterface dsi) { 51 super(dsi, new RelativeChildObjectRange()); 52 } 53 54 58 public DAVRelativeObjectRange( 59 AbstractDataStoreInterface dsi, 60 Range range) { 61 super(dsi, range); 62 } 63 64 70 public DAVRelativeObjectRange( 71 AbstractDataStoreInterface dsi, 72 Element davPropEl) 73 throws WebDAVException { 74 super(dsi, new RelativeChildObjectRange(), davPropEl); 75 } 76 77 78 81 protected void addRangeDetails(Element rangeEl, Range range, Document doc) 82 throws WebDAVException { 83 84 Element resourceTypeEl = 85 doc.createElementNS( 86 NamespaceType.DAV.getURI(), 87 HarmonisePropertiesManager.TAG_RESOURCETYPE); 88 resourceTypeEl.setPrefix(NamespaceType.DAV.getPrefix()); 89 90 String sResourceType = HarmoniseNameResolver.RESOURCE_TYPE_RESOURCE; 91 92 Element valEl = 93 doc.createElementNS(NamespaceType.DAV.getURI(), sResourceType); 94 valEl.setPrefix(NamespaceType.DAV.getPrefix()); 95 resourceTypeEl.appendChild(valEl); 96 rangeEl.appendChild(resourceTypeEl); 97 98 String sPathRestiction = 99 ((RelativeChildObjectRange) range).getPathRestriction(); 100 101 Element hrefEl = 102 doc.createElementNS( 103 NamespaceType.DAV.getURI(), 104 HarmonisePropertiesManager.TAG_HREF); 105 hrefEl.setPrefix(NamespaceType.DAV.getPrefix()); 106 hrefEl.appendChild(doc.createTextNode(sPathRestiction)); 107 rangeEl.appendChild(hrefEl); 108 109 } 110 111 114 public void populate(Element propEl) throws WebDAVException { 115 116 String sResourceType = null; 118 119 Element resourceEl = 120 XMLUtils.getFirstNamedChild( 121 propEl, 122 HarmonisePropertiesManager.TAG_RESOURCETYPE); 123 124 if (resourceEl != null) { 125 Element resourceTypeEl = XMLUtils.getFirstElementChild(resourceEl); 126 sResourceType = resourceTypeEl.getLocalName(); 127 } 128 129 NodeList hrefNodes = 131 propEl.getElementsByTagNameNS( 132 NamespaceType.DAV.getURI(), 133 HarmonisePropertiesManager.TAG_HREF); 134 135 List relPaths = new ArrayList(); 136 AbstractParentObject parent = null; 137 138 String sParentClassName = null; 139 for (int i = 0; i < hrefNodes.getLength(); i++) { 140 Element hrefEl = (Element) hrefNodes.item(i); 141 142 String hrefVal = hrefEl.getChildNodes().item(0).getNodeValue(); 143 144 if (hrefVal != null && hrefVal.length() > 0) { 145 146 relPaths.add(hrefVal); 147 } 148 149 } 150 151 ((RelativeChildObjectRange) m_range).setPathRestriction( 152 (String ) relPaths.get(0)); 153 154 } 155 156 } 157 | Popular Tags |