/** * Create a new LockDiscovery property * * @param locks */ public LockDiscovery(ActiveLock[] locks) { super(DavPropertyName.LOCKDISCOVERY, false); for (ActiveLock lock : locks) { addActiveLock(lock); } }
/** * Creates a JDOM <code><lockdiscovery></code> element in order to respond to a LOCK * request or to the lockdiscovery property of a PROPFIND request.<br> * NOTE: if the {@link #activeLocks} list is empty an empty lockdiscovery * property is created ( <code><lockdiscovery/></code>) * @return A JDOM element of the <active> lock tag. * @param document */ public Element toXml(Document document) { Element lockdiscovery = getName().toXml(document); Iterator it = activeLocks.iterator(); while (it.hasNext()) { ActiveLock lock = (ActiveLock) it.next(); lockdiscovery.appendChild(lock.toXml(document)); } return lockdiscovery; }
/** * Builds a new <code>LockDiscovery</code> object from the given xml element. * * @param lockDiscoveryElement * @return * @throws IllegalArgumentException if the given xml element is not a * DAV:lockdiscovery element. */ public static LockDiscovery createFromXml(Element lockDiscoveryElement) { if (!DomUtil.matches(lockDiscoveryElement, PROPERTY_LOCKDISCOVERY, NAMESPACE)) { throw new IllegalArgumentException("DAV:lockdiscovery element expected."); } List<ActiveLock> activeLocks = new ArrayList<ActiveLock>(); ElementIterator it = DomUtil.getChildren(lockDiscoveryElement, XML_ACTIVELOCK, NAMESPACE); while (it.hasNext()) { Element al = it.nextElement(); activeLocks.add(new ALockImpl(al)); } return new LockDiscovery(activeLocks.toArray(new ActiveLock[activeLocks.size()])); }
/** * Return response body as {@link LockDiscovery} object. * @throws IllegalStateException when response does not represent a {@link LockDiscovery} * @throws DavException for failures in obtaining/parsing the response body */ public LockDiscovery getResponseBodyAsLockDiscovery(HttpResponse response) throws DavException { try { Document doc = getResponseBodyAsDocument(response.getEntity()); if (doc == null) { throw new DavException(response.getStatusLine().getStatusCode(), "no response body"); } Element root = doc.getDocumentElement(); if (!DomUtil.matches(root, DavConstants.XML_PROP, DavConstants.NAMESPACE) && DomUtil.hasChildElement(root, DavConstants.PROPERTY_LOCKDISCOVERY, DavConstants.NAMESPACE)) { throw new DavException(response.getStatusLine().getStatusCode(), "Missing DAV:prop response body in LOCK response."); } Element lde = DomUtil.getChildElement(root, DavConstants.PROPERTY_LOCKDISCOVERY, DavConstants.NAMESPACE); if (!DomUtil.hasChildElement(lde, DavConstants.XML_ACTIVELOCK, DavConstants.NAMESPACE)) { throw new DavException(response.getStatusLine().getStatusCode(), "The DAV:lockdiscovery must contain a least a single DAV:activelock in response to a successful LOCK request."); } return LockDiscovery.createFromXml(lde); } catch (IOException ex) { throw new DavException(response.getStatusLine().getStatusCode(), ex); } }
private LockInfo retrieveLockInfo(LockDiscovery lockDiscovery, SessionInfo sessionInfo, NodeId nodeId, NodeId parentId) throws RepositoryException { checkSessionInfo(sessionInfo); List<ActiveLock> activeLocks = lockDiscovery.getValue(); ActiveLock activeLock = null; for (ActiveLock l : activeLocks) {
/** * Builds a new <code>LockDiscovery</code> object from the given xml element. * * @param lockDiscoveryElement * @return * @throws IllegalArgumentException if the given xml element is not a * DAV:lockdiscovery element. */ public static LockDiscovery createFromXml(Element lockDiscoveryElement) { if (!DomUtil.matches(lockDiscoveryElement, PROPERTY_LOCKDISCOVERY, NAMESPACE)) { throw new IllegalArgumentException("DAV:lockdiscovery element expected."); } List<ActiveLock> activeLocks = new ArrayList<ActiveLock>(); ElementIterator it = DomUtil.getChildren(lockDiscoveryElement, XML_ACTIVELOCK, NAMESPACE); while (it.hasNext()) { Element al = it.nextElement(); activeLocks.add(new ALockImpl(al)); } return new LockDiscovery(activeLocks.toArray(new ActiveLock[activeLocks.size()])); }
/** * Return response body as {@link LockDiscovery} object. * @throws IllegalStateException when response does not represent a {@link LockDiscovery} * @throws DavException for failures in obtaining/parsing the response body */ public LockDiscovery getResponseBodyAsLockDiscovery(HttpResponse response) throws DavException { try { Document doc = getResponseBodyAsDocument(response.getEntity()); if (doc == null) { throw new DavException(response.getStatusLine().getStatusCode(), "no response body"); } Element root = doc.getDocumentElement(); if (!DomUtil.matches(root, DavConstants.XML_PROP, DavConstants.NAMESPACE) && DomUtil.hasChildElement(root, DavConstants.PROPERTY_LOCKDISCOVERY, DavConstants.NAMESPACE)) { throw new DavException(response.getStatusLine().getStatusCode(), "Missing DAV:prop response body in LOCK response."); } Element lde = DomUtil.getChildElement(root, DavConstants.PROPERTY_LOCKDISCOVERY, DavConstants.NAMESPACE); if (!DomUtil.hasChildElement(lde, DavConstants.XML_ACTIVELOCK, DavConstants.NAMESPACE)) { throw new DavException(response.getStatusLine().getStatusCode(), "The DAV:lockdiscovery must contain a least a single DAV:activelock in response to a successful LOCK request."); } return LockDiscovery.createFromXml(lde); } catch (IOException ex) { throw new DavException(response.getStatusLine().getStatusCode(), ex); } }
private LockInfo retrieveLockInfo(LockDiscovery lockDiscovery, SessionInfo sessionInfo, NodeId nodeId, NodeId parentId) throws RepositoryException { checkSessionInfo(sessionInfo); List<ActiveLock> activeLocks = lockDiscovery.getValue(); ActiveLock activeLock = null; for (ActiveLock l : activeLocks) {
/** * Builds a new <code>LockDiscovery</code> object from the given xml element. * * @param lockDiscoveryElement * @return * @throws IllegalArgumentException if the given xml element is not a * DAV:lockdiscovery element. */ public static LockDiscovery createFromXml(Element lockDiscoveryElement) { if (!DomUtil.matches(lockDiscoveryElement, PROPERTY_LOCKDISCOVERY, NAMESPACE)) { throw new IllegalArgumentException("DAV:lockdiscovery element expected."); } List activeLocks = new ArrayList(); ElementIterator it = DomUtil.getChildren(lockDiscoveryElement, XML_ACTIVELOCK, NAMESPACE); while (it.hasNext()) { Element al = it.nextElement(); activeLocks.add(new ALockImpl(al)); } return new LockDiscovery((ActiveLock[]) activeLocks.toArray(new ActiveLock[activeLocks.size()])); }
/** * Create a new LockDiscovery property * * @param lock */ public LockDiscovery(ActiveLock lock) { super(DavPropertyName.LOCKDISCOVERY, false); addActiveLock(lock); }
if (ps.contains(DavPropertyName.LOCKDISCOVERY)) { DavProperty<?> p = ps.get(DavPropertyName.LOCKDISCOVERY); LockDiscovery ld = LockDiscovery.createFromXml(p.toXml(DomUtil.createDocument())); NodeId parentId = getParentId(uri, ps, sessionInfo); return retrieveLockInfo(ld, sessionInfo, nodeId, parentId);
/** * Creates a <code><lockdiscovery></code> element in response * to a LOCK request or to the lockdiscovery property of a PROPFIND request.<br> * NOTE: if the {@link #activeLocks} list is empty an empty lockdiscovery * property is created ( <code><lockdiscovery/></code>) * @return A <code><lockdiscovery></code> element. * @param document */ @Override public Element toXml(Document document) { Element lockdiscovery = getName().toXml(document); for (ActiveLock lock : activeLocks) { lockdiscovery.appendChild(lock.toXml(document)); } return lockdiscovery; }
/** * Send response body for a lock request that was intended to refresh one * or several locks. * * @param locks * @throws java.io.IOException * @see DavServletResponse#sendRefreshLockResponse(org.apache.jackrabbit.webdav.lock.ActiveLock[]) */ public void sendRefreshLockResponse(ActiveLock[] locks) throws IOException { DavPropertySet propSet = new DavPropertySet(); propSet.add(new LockDiscovery(locks)); sendXmlResponse(propSet, SC_OK); }
/** * Create a new LockDiscovery property * * @param locks */ public LockDiscovery(ActiveLock[] locks) { super(DavPropertyName.LOCKDISCOVERY, false); for (ActiveLock lock : locks) { addActiveLock(lock); } }
if (ps.contains(DavPropertyName.LOCKDISCOVERY)) { DavProperty<?> p = ps.get(DavPropertyName.LOCKDISCOVERY); LockDiscovery ld = LockDiscovery.createFromXml(p.toXml(DomUtil.createDocument())); NodeId parentId = getParentId(uri, ps, sessionInfo); return retrieveLockInfo(ld, sessionInfo, nodeId, parentId);
/** * Creates a <code><lockdiscovery></code> element in response * to a LOCK request or to the lockdiscovery property of a PROPFIND request.<br> * NOTE: if the {@link #activeLocks} list is empty an empty lockdiscovery * property is created ( <code><lockdiscovery/></code>) * @return A <code><lockdiscovery></code> element. * @param document */ @Override public Element toXml(Document document) { Element lockdiscovery = getName().toXml(document); for (ActiveLock lock : activeLocks) { lockdiscovery.appendChild(lock.toXml(document)); } return lockdiscovery; }
/** * Send response body for a lock request that was intended to refresh one * or several locks. * * @param locks * @throws java.io.IOException * @see DavServletResponse#sendRefreshLockResponse(org.apache.jackrabbit.webdav.lock.ActiveLock[]) */ public void sendRefreshLockResponse(ActiveLock[] locks) throws IOException { DavPropertySet propSet = new DavPropertySet(); propSet.add(new LockDiscovery(locks)); sendXmlResponse(propSet, SC_OK); }
/** * Create a new LockDiscovery property * * @param locks */ public LockDiscovery(ActiveLock[] locks) { super(DavPropertyName.LOCKDISCOVERY, false); for (int i = 0; i < locks.length; i++) { addActiveLock(locks[i]); } }
/** * Send response body for a lock request that was intended to refresh one * or several locks. * * @param locks * @throws java.io.IOException * @see DavServletResponse#sendRefreshLockResponse(org.apache.jackrabbit.webdav.lock.ActiveLock[]) */ public void sendRefreshLockResponse(ActiveLock[] locks) throws IOException { DavPropertySet propSet = new DavPropertySet(); propSet.add(new LockDiscovery(locks)); sendXmlResponse(propSet, SC_OK); }
/** * Create a new LockDiscovery property * * @param lock */ public LockDiscovery(ActiveLock lock) { super(DavPropertyName.LOCKDISCOVERY, false); addActiveLock(lock); }