drools-eclipse/org.guvnor.eclipse.webdav/src/client/org/eclipse/webdav/client/AbstractResourceHandle.java
public URLTable getPropertyNames(String depth) throws DAVException {

        // create and send the request
        IContext context = newContext();
        context.setDepth(depth);

        IResponse response = null;
        try {
            Document document = newDocument();
            PropFind propfind = PropFind.create(document);
            propfind.setIsPropName(true);

            response = davClient.propfind(locator, context, document);
            examineResponse(response);

            if (!response.hasDocumentBody()) {
                throw new DAVException(Policy.bind("exception.respMustHaveElmtBody")); //$NON-NLS-1$
            }
            Element documentElement = response.getDocumentBody().getDocumentElement();
            if (documentElement == null) {
                throw new DAVException(Policy.bind("exception.bodyMustHaveElmt")); //$NON-NLS-1$
            }
            MultiStatus multistatus = new MultiStatus(documentElement);

            //construct the URLTable to return to the user
            URLTable reply = new URLTable(10);
            Enumeration responses = multistatus.getResponses();
            while (responses.hasMoreElements()) {
                ResponseBody responseBody = (ResponseBody) responses.nextElement();
                String href = responseBody.getHref();
                URL resourceUrl = new URL(new URL(locator.getResourceURL()), href);
                Enumeration propstats = responseBody.getPropStats();
                Vector vector = new Vector();
                while (propstats.hasMoreElements()) {
                    PropStat propstat = (PropStat) propstats.nextElement();
                    Prop prop = propstat.getProp();
                    Enumeration names = prop.getPropertyNames();
                    while (names.hasMoreElements()) {
                        QualifiedName dname = (QualifiedName) names.nextElement();
                        vector.addElement(dname);
                    }
                }
                reply.put(resourceUrl, vector.elements());
            }
            return reply;
        } catch (IOException e) {
            throw new SystemException(e);
        } catch (MalformedElementException e) {
            throw new SystemException(e);
        } finally {
            closeResponse(response);
        }
    }
public URLTable getPropertyNames(String depth) throws DAVException {

        // create and send the request
        IContext context = newContext();
        context.setDepth(depth);

        IResponse response = null;
        try {
            Document document = newDocument();
            PropFind propfind = PropFind.create(document);
            propfind.setIsPropName(true);

            response = davClient.propfind(locator, context, document);
            examineResponse(response);

            if (!response.hasDocumentBody()) {
                throw new DAVException(Policy.bind("exception.respMustHaveElmtBody")); //$NON-NLS-1$
            }
            Element documentElement = response.getDocumentBody().getDocumentElement();
            if (documentElement == null) {
                throw new DAVException(Policy.bind("exception.bodyMustHaveElmt")); //$NON-NLS-1$
            }
            MultiStatus multistatus = new MultiStatus(documentElement);

            //construct the URLTable to return to the user
            URLTable reply = new URLTable(10);
            Enumeration responses = multistatus.getResponses();
            while (responses.hasMoreElements()) {
                ResponseBody responseBody = (ResponseBody) responses.nextElement();
                String href = responseBody.getHref();
                URL resourceUrl = new URL(new URL(locator.getResourceURL()), href);
                Enumeration propstats = responseBody.getPropStats();
                Vector vector = new Vector();
                while (propstats.hasMoreElements()) {
                    PropStat propstat = (PropStat) propstats.nextElement();
                    Prop prop = propstat.getProp();
                    Enumeration names = prop.getPropertyNames();
                    while (names.hasMoreElements()) {
                        QualifiedName dname = (QualifiedName) names.nextElement();
                        vector.addElement(dname);
                    }
                }
                reply.put(resourceUrl, vector.elements());
            }
            return reply;
        } catch (IOException e) {
            throw new SystemException(e);
        } catch (MalformedElementException e) {
            throw new SystemException(e);
        } finally {
            closeResponse(response);
        }
    }
Fetch and return the property names for the resource, and the children
resources to the specified depth. Returns <code>URLTable</code>
mapping resource URLs to enumerations over the property names for that
resource.

@param depth eg. <code>Context.DEPTH_ZERO</code>
@return a <code>URLTable</code> of <code>Enumerations</code> over
<code>QualfiedNames</code>
@throws DAVException if there was a problem getting the property names
@see IServer#propfind(Locator, Context, Document)