use of org.apache.jackrabbit.webdav.jcr.JcrDavException in project jackrabbit by apache.
the class SearchResourceImpl method search.
/**
* Execute the query defined by the given <code>sInfo</code>.
*
* @see SearchResource#search(org.apache.jackrabbit.webdav.search.SearchInfo)
*/
public MultiStatus search(SearchInfo sInfo) throws DavException {
try {
QueryResult result = getQuery(sInfo).execute();
MultiStatus ms = new MultiStatus();
if (ItemResourceConstants.NAMESPACE.equals(sInfo.getLanguageNameSpace())) {
ms.setResponseDescription("Columns: " + encode(result.getColumnNames()) + "\nSelectors: " + encode(result.getSelectorNames()));
} else {
ms.setResponseDescription(encode(result.getColumnNames()));
}
queryResultToMultiStatus(result, ms);
return ms;
} catch (RepositoryException e) {
throw new JcrDavException(e);
}
}
use of org.apache.jackrabbit.webdav.jcr.JcrDavException in project jackrabbit by apache.
the class VersionItemCollection method getVersionHistory.
/**
* Returns the {@link VersionHistory} associated with the repository version.
* Note: in contrast to a versionable node, the version history of a version
* item is always represented by its nearest ancestor.
*
* @return the {@link VersionHistoryResource} associated with this resource.
* @throws org.apache.jackrabbit.webdav.DavException
* @see org.apache.jackrabbit.webdav.version.VersionResource#getVersionHistory()
* @see javax.jcr.Item#getParent()
*/
public VersionHistoryResource getVersionHistory() throws DavException {
if (!exists()) {
throw new DavException(DavServletResponse.SC_NOT_FOUND);
}
try {
VersionHistory vh = getVersionHistoryItem();
DavResourceLocator loc = getLocatorFromItem(vh);
return (VersionHistoryResource) createResourceFromLocator(loc);
} catch (RepositoryException e) {
throw new JcrDavException(e);
}
}
use of org.apache.jackrabbit.webdav.jcr.JcrDavException in project jackrabbit by apache.
the class VersionHistoryResourceImpl method removeMember.
/**
* Removing a version resource is achieved by calling <code>removeVersion</code>
* on the versionhistory item this version belongs to.
*
* @throws DavException if the version does not exist or if an error occurs
* while deleting.
* @see DavResource#removeMember(org.apache.jackrabbit.webdav.DavResource)
*/
@Override
public void removeMember(DavResource member) throws DavException {
if (exists()) {
VersionHistory versionHistory = (VersionHistory) getNode();
try {
String itemPath = member.getLocator().getRepositoryPath();
// Retrieve the last segment of the given path and removes the index if present.
if (itemPath == null) {
throw new IllegalArgumentException("Cannot retrieve name from a 'null' item path.");
}
String name = Text.getName(itemPath);
// remove index
if (name.endsWith("]")) {
name = name.substring(0, name.lastIndexOf('['));
}
versionHistory.removeVersion(name);
} catch (RepositoryException e) {
throw new JcrDavException(e);
}
} else {
throw new DavException(DavServletResponse.SC_NOT_FOUND);
}
}
use of org.apache.jackrabbit.webdav.jcr.JcrDavException in project jackrabbit by apache.
the class VersionHistoryResourceImpl method getVersions.
// ---------------------------------------------< VersionHistoryResource >---
/**
* Return an array of {@link org.apache.jackrabbit.webdav.version.VersionResource}s representing all versions
* present in the underlying JCR version history.
*
* @return array of {@link org.apache.jackrabbit.webdav.version.VersionResource}s representing all versions
* present in the underlying JCR version history.
* @throws org.apache.jackrabbit.webdav.DavException
* @see org.apache.jackrabbit.webdav.version.VersionHistoryResource#getVersions()
*/
public VersionResource[] getVersions() throws DavException {
try {
VersionIterator vIter = ((VersionHistory) getNode()).getAllVersions();
ArrayList<VersionResource> l = new ArrayList<VersionResource>();
while (vIter.hasNext()) {
DavResourceLocator versionLoc = getLocatorFromNode(vIter.nextVersion());
DavResource vr = createResourceFromLocator(versionLoc);
if (vr instanceof VersionResource) {
l.add((VersionResource) vr);
} else {
// severe error since resource factory doesn't behave correctly.
throw new DavException(DavServletResponse.SC_INTERNAL_SERVER_ERROR);
}
}
return l.toArray(new VersionResource[l.size()]);
} catch (RepositoryException e) {
throw new JcrDavException(e);
}
}
use of org.apache.jackrabbit.webdav.jcr.JcrDavException in project jackrabbit by apache.
the class VersionHistoryItemCollection method getVersions.
// -----------------------------------< VersionHistoryResource interface >---
/**
* Return an array of {@link VersionResource}s representing all versions
* present in the underlying JCR version history.
*
* @return array of {@link VersionResource}s representing all versions
* present in the underlying JCR version history.
* @throws DavException
* @see org.apache.jackrabbit.webdav.version.VersionHistoryResource#getVersions()
*/
public VersionResource[] getVersions() throws DavException {
try {
VersionIterator vIter = ((VersionHistory) item).getAllVersions();
ArrayList<VersionResource> l = new ArrayList<VersionResource>();
while (vIter.hasNext()) {
DavResourceLocator versionLoc = getLocatorFromItem(vIter.nextVersion());
VersionResource vr = (VersionResource) createResourceFromLocator(versionLoc);
l.add(vr);
}
return l.toArray(new VersionResource[l.size()]);
} catch (RepositoryException e) {
throw new JcrDavException(e);
}
}
Aggregations