You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by ju...@apache.org on 2002/05/08 10:24:20 UTC

cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/util PropertyHelper.java

juergen     02/05/08 01:24:20

  Modified:    src/webdav/server/org/apache/slide/webdav/util
                        PropertyHelper.java
  Log:
  Reuse query document in methods computeCheckoutSet() and computeWorkspaceCheckoutSet().
  (ralf)
  
  Revision  Changes    Path
  1.18      +122 -51   jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/PropertyHelper.java
  
  Index: PropertyHelper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/PropertyHelper.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- PropertyHelper.java	30 Apr 2002 12:39:40 -0000	1.17
  +++ PropertyHelper.java	8 May 2002 08:24:20 -0000	1.18
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/PropertyHelper.java,v 1.17 2002/04/30 12:39:40 pnever Exp $
  - * $Revision: 1.17 $
  - * $Date: 2002/04/30 12:39:40 $
  + * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/PropertyHelper.java,v 1.18 2002/05/08 08:24:20 juergen Exp $
  + * $Revision: 1.18 $
  + * $Date: 2002/05/08 08:24:20 $
    *
    * ====================================================================
    *
  @@ -108,6 +108,33 @@
   
   public class PropertyHelper extends AbstractWebdavHelper implements DeltavConstants {
       
  +    
  +    /**
  +     * The Element returned by {@link #getCheckoutSetQueryElement
  +     * getCheckoutSetQueryElement()}.
  +     */
  +    protected Element checkoutSetQueryElement = null;
  +    
  +    /**
  +     * The <literal> Element used in the basic search query returned by
  +     * {@link #getCheckoutSetQueryElement getCheckoutSetQueryElement()}.
  +     */
  +    protected Element checkoutSetQueryLiteralElement = null;
  +    
  +    /**
  +     * The Element returned by {@link #getWorkspaceCheckoutSetQueryElement
  +     * getWorkspaceCheckoutSetQueryElement()}.
  +     */
  +    protected Element workspaceCheckoutSetQueryElement = null;
  +    
  +    /**
  +     * The <href> Element used in the basic search query returned by
  +     * {@link #getWorkspaceCheckoutSetQueryElement getWorkspaceCheckoutSetQueryElement()}.
  +     */
  +    protected Element workspaceCheckoutSetQueryHrefElement = null;
  +    
  +    
  +    
       /**
        * Factory method.
        */
  @@ -877,17 +904,58 @@
           ResourceKind resourceKind = AbstractResourceKind.determineResourceKind(nsaToken, revisionDescriptors, revisionDescriptor);
           if (resourceKind instanceof Version) {
               
  -            Element basicSearch = new Element(DaslConstants.E_BASICSEARCH, davNamespace);
  +            String resourcePath = VersioningHelper.getUri(nsaToken,
  +                                                          sToken,
  +                                                          nsaToken.getContentHelper(),
  +                                                          revisionDescriptors,
  +                                                          revisionDescriptor);
  +            Element basicSearch = getCheckoutSetQueryElement(resourcePath);
  +            
  +            String grammarNamespace = basicSearch.getNamespaceURI();
  +            Search searchHelper = nsaToken.getSearchHelper();
  +            SearchQuery searchQuery = searchHelper.createSearchQuery(grammarNamespace,
  +                                                                     basicSearch,
  +                                                                     sToken,
  +                                                                     Integer.MAX_VALUE);
  +            SearchQueryResult queryResult = searchHelper.search(sToken, searchQuery);
  +            Iterator queryResultIterator = queryResult.iterator();
  +            RequestedResource requestedResource = null;
  +            Element href = null;
  +            while (queryResultIterator.hasNext()) {
  +                requestedResource = (RequestedResource)queryResultIterator.next();
  +                href = new Element(E_HREF, defNamespace);
  +                href.setText(getAbsoluteURL(serverURL, contextPath, requestedResource.getInternalHref()));
  +                xmlValue.add(href);
  +            }
  +        }
  +        
  +        return xmlValue;
  +    }
  +    
  +    /**
  +     * Returns the query document used to search all resources that have
  +     * a <checked-out> property with a <href> value containing
  +     * the URI that identifies the given resource.
  +     *
  +     * @param      resourcePath  the Uri to search for.
  +     *
  +     * @return     the query document.
  +     */
  +    private Element getCheckoutSetQueryElement(String resourcePath) throws SlideException {
  +        
  +        if (checkoutSetQueryElement == null) {
  +            
  +            checkoutSetQueryElement = new Element(DaslConstants.E_BASICSEARCH, davNamespace);
               
               Element select = new Element(DaslConstants.E_SELECT, davNamespace);
  -            basicSearch.addContent(select);
  +            checkoutSetQueryElement.addContent(select);
               Element prop = new Element(E_PROP, davNamespace);
               select.addContent(prop);
               Element checkedOut = new Element(P_CHECKED_OUT, davNamespace);
               prop.addContent(checkedOut);
               
               Element from = new Element(DaslConstants.E_FROM, davNamespace);
  -            basicSearch.addContent(from);
  +            checkoutSetQueryElement.addContent(from);
               Element scope = new Element(DaslConstants.E_SCOPE, davNamespace);
               from.addContent(scope);
               Element href = new Element(E_HREF, davNamespace);
  @@ -895,32 +963,16 @@
               href.setText("/");
               
               Element where = new Element(DaslConstants.E_WHERE, davNamespace);
  -            basicSearch.addContent(where);
  +            checkoutSetQueryElement.addContent(where);
               Element propcontains = new Element(DaslConstants.E_PROPCONTAINS, slideNamespace);
               where.addContent(propcontains);
               propcontains.addContent((Element)prop.clone());
  -            Element literal = new Element(DaslConstants.E_LITERAL, davNamespace);
  -            propcontains.addContent(literal);
  -            literal.setText(VersioningHelper.getUri(nsaToken, sToken, nsaToken.getContentHelper(), revisionDescriptors, revisionDescriptor));
  -            
  -            String grammarNamespace = basicSearch.getNamespaceURI();
  -            Search searchHelper = nsaToken.getSearchHelper();
  -            SearchQuery searchQuery = searchHelper.createSearchQuery(grammarNamespace,
  -                                                                     basicSearch,
  -                                                                     sToken,
  -                                                                     Integer.MAX_VALUE);
  -            SearchQueryResult queryResult = searchHelper.search(sToken, searchQuery);
  -            Iterator queryResultIterator = queryResult.iterator();
  -            RequestedResource requestedResource = null;
  -            while (queryResultIterator.hasNext()) {
  -                requestedResource = (RequestedResource)queryResultIterator.next();
  -                href = new Element(E_HREF, defNamespace);
  -                href.setText(getAbsoluteURL(serverURL, contextPath, requestedResource.getInternalHref()));
  -                xmlValue.add(href);
  -            }
  +            checkoutSetQueryLiteralElement = new Element(DaslConstants.E_LITERAL, davNamespace);
  +            propcontains.addContent(checkoutSetQueryLiteralElement);
           }
  +        checkoutSetQueryLiteralElement.setText(resourcePath);
   
  -        return xmlValue;
  +        return checkoutSetQueryElement;
       }
       
       /**
  @@ -949,48 +1001,67 @@
           ResourceKind resourceKind = AbstractResourceKind.determineResourceKind(nsaToken, revisionDescriptors, revisionDescriptor);
           if (resourceKind instanceof Workspace) {
               
  -            Element basicSearch = new Element(DaslConstants.E_BASICSEARCH, davNamespace);
  +            Element basicSearch = getWorkspaceCheckoutSetQueryElement(revisionDescriptors.getUri());
  +            String grammarNamespace = basicSearch.getNamespaceURI();
  +            Search searchHelper = nsaToken.getSearchHelper();
  +            SearchQuery searchQuery = searchHelper.createSearchQuery(grammarNamespace,
  +                                                                     basicSearch,
  +                                                                     sToken,
  +                                                                     Integer.MAX_VALUE);
  +            SearchQueryResult queryResult = searchHelper.search(sToken, searchQuery);
  +            Iterator queryResultIterator = queryResult.iterator();
  +            RequestedResource requestedResource = null;
  +            Element hrefElement = null;
  +            while (queryResultIterator.hasNext()) {
  +                requestedResource = (RequestedResource)queryResultIterator.next();
  +                hrefElement = new Element(E_HREF, defNamespace);
  +                hrefElement.setText(getAbsoluteURL(serverURL, contextPath, requestedResource.getInternalHref()));
  +                xmlValue.add(hrefElement);
  +            }
  +        }
  +        
  +        return xmlValue;
  +    }
  +    
  +    /**
  +     * Returns the query document used to search all resources that have
  +     * a &lt;checked-out&gt; property within the given <code>scopePath</code>.
  +     *
  +     * @param      scopePath  the Uri of the scope to search in.
  +     *
  +     * @return     the query document.
  +     */
  +    private Element getWorkspaceCheckoutSetQueryElement(String scopePath) {
  +        
  +        if (workspaceCheckoutSetQueryElement == null) {
  +            
  +            workspaceCheckoutSetQueryElement = new Element(DaslConstants.E_BASICSEARCH, davNamespace);
               
               Element select = new Element(DaslConstants.E_SELECT, davNamespace);
  -            basicSearch.addContent(select);
  +            workspaceCheckoutSetQueryElement.addContent(select);
               Element prop = new Element(E_PROP, davNamespace);
               select.addContent(prop);
               Element checkedOut = new Element(P_CHECKED_OUT, davNamespace);
               prop.addContent(checkedOut);
               
               Element from = new Element(DaslConstants.E_FROM, davNamespace);
  -            basicSearch.addContent(from);
  +            workspaceCheckoutSetQueryElement.addContent(from);
               Element scope = new Element(DaslConstants.E_SCOPE, davNamespace);
               from.addContent(scope);
  -            Element href = new Element(E_HREF, davNamespace);
  -            scope.addContent(href);
  -            href.setText(revisionDescriptors.getUri());
  +            workspaceCheckoutSetQueryHrefElement = new Element(E_HREF, davNamespace);
  +            scope.addContent(workspaceCheckoutSetQueryHrefElement);
               
               Element where = new Element(DaslConstants.E_WHERE, davNamespace);
  -            basicSearch.addContent(where);
  +            workspaceCheckoutSetQueryElement.addContent(where);
               Element isdefined = new Element(DaslConstants.E_ISDEFINED, davNamespace);
               where.addContent(isdefined);
               isdefined.addContent((Element)prop.clone());
  +        }
  +        workspaceCheckoutSetQueryHrefElement.setText(scopePath);
               
  -            String grammarNamespace = basicSearch.getNamespaceURI();
  -            Search searchHelper = nsaToken.getSearchHelper();
  -            SearchQuery searchQuery = searchHelper.createSearchQuery(grammarNamespace,
  -                                                                     basicSearch,
  -                                                                     sToken,
  -                                                                     Integer.MAX_VALUE);
  -            SearchQueryResult queryResult = searchHelper.search(sToken, searchQuery);
  -            Iterator queryResultIterator = queryResult.iterator();
  -            RequestedResource requestedResource = null;
  -            while (queryResultIterator.hasNext()) {
  -                requestedResource = (RequestedResource)queryResultIterator.next();
  -                href = new Element(E_HREF, defNamespace);
  -                href.setText(getAbsoluteURL(serverURL, contextPath, requestedResource.getInternalHref()));
  -                xmlValue.add(href);
  -            }
  +        return workspaceCheckoutSetQueryElement;
           }
           
  -        return xmlValue;
  -    }
       
       /**
        * Returns the concatenation of <code>serverURL</code>, <code>contextPath</code>
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>