Class CaldavReportMethod

  • All Implemented Interfaces:
    org.bedework.util.logging.Logged, org.bedework.webdav.servlet.common.SecureXml
    Direct Known Subclasses:
    ReportBase

    public class CaldavReportMethod
    extends org.bedework.webdav.servlet.common.ReportMethod
    Class called to handle CalDAV REPORT.
    Author:
    Mike Douglass douglm rpi.edu
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  CaldavReportMethod.CalendarQueryPars  
      • Nested classes/interfaces inherited from class org.bedework.webdav.servlet.common.MethodBase

        org.bedework.webdav.servlet.common.MethodBase.MethodInfo
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected CaldavReportMethod.CalendarQueryPars cqpars  
      • Fields inherited from class org.bedework.webdav.servlet.common.ReportMethod

        pm, preq
      • Fields inherited from class org.bedework.webdav.servlet.common.MethodBase

        dumpContent, hasBriefHeader, nsIntf, xml
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> doNodeAndChildren​(CaldavReportMethod.CalendarQueryPars cqp, org.bedework.webdav.servlet.shared.WebdavNsNode node)  
      protected Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> doNodeAndChildren​(CaldavReportMethod.CalendarQueryPars cqp, org.bedework.webdav.servlet.shared.WebdavNsNode node, ietf.params.xml.ns.caldav.ExpandType expand, ietf.params.xml.ns.caldav.LimitRecurrenceSetType lrs, List<String> retrieveList)  
      protected int getCaldavReportType​(Document doc)
      See if we recognize this report type and return an index.
      Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> getMgetNodes​(Collection<String> hrefs, Collection<String> badHrefs)
      Return collection of nodes specified by list of hrefs.
      void init()
      Called at each request
      protected void process​(CaldavReportMethod.CalendarQueryPars cqp, String resourceUri)  
      protected void process​(Document doc, int depth, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)  
      protected void processDoc​(Document doc)  
      void processFbResp​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, int depth)
      Handle free/busy response
      void processResp​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, int depth)  
      • Methods inherited from class org.bedework.webdav.servlet.common.ReportMethod

        doMethod, doNodeProperties
      • Methods inherited from class org.bedework.webdav.servlet.common.MethodBase

        addDavHeader, addHeaders, addNs, addStatus, cdataProperty, checkDepth, checkServerInfo, closeTag, defaultDepth, doPropFind, emptyTag, emptyTag, flush, getChildren, getChildrenArray, getElementContent, getLogger, getNsAbbrev, getNsIntf, getOnlyChild, getResourceUri, getStatus, init, isEmpty, openTag, openTagNoNewline, parseContent, parseContent, property, property, propertyTagVal, startEmit
      • Methods inherited from interface org.bedework.util.logging.Logged

        audit, debug, debug, enableAuditLogger, enableErrorLogger, enableMetricsLogger, error, error, error, getLogLevel, info, isAuditLoggerEnabled, isErrorLoggerEnabled, isMetricsDebugEnabled, isMetricsLoggerEnabled, metrics, setLoggerClass, setLoggerClass, trace, trace, warn
      • Methods inherited from interface org.bedework.webdav.servlet.common.SecureXml

        parseXmlSafely
    • Constructor Detail

      • CaldavReportMethod

        public CaldavReportMethod()
    • Method Detail

      • init

        public void init()
        Called at each request
        Overrides:
        init in class org.bedework.webdav.servlet.common.ReportMethod
      • process

        protected void process​(Document doc,
                               int depth,
                               javax.servlet.http.HttpServletRequest req,
                               javax.servlet.http.HttpServletResponse resp)
                        throws org.bedework.webdav.servlet.shared.WebdavException
        Overrides:
        process in class org.bedework.webdav.servlet.common.ReportMethod
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException
      • getCaldavReportType

        protected int getCaldavReportType​(Document doc)
                                   throws org.bedework.webdav.servlet.shared.WebdavException
        See if we recognize this report type and return an index.
        Parameters:
        doc - parsed document
        Returns:
        index or <0 for unknown.
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException - on fatal error
      • processDoc

        protected void processDoc​(Document doc)
                           throws org.bedework.webdav.servlet.shared.WebdavException
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException
      • processResp

        public void processResp​(javax.servlet.http.HttpServletRequest req,
                                javax.servlet.http.HttpServletResponse resp,
                                int depth)
                         throws org.bedework.webdav.servlet.shared.WebdavException
        Parameters:
        req - http request
        resp - http response
        depth - from depth header
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException - on fatal error
      • process

        protected void process​(CaldavReportMethod.CalendarQueryPars cqp,
                               String resourceUri)
                        throws org.bedework.webdav.servlet.shared.WebdavException
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException
      • getMgetNodes

        public Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> getMgetNodes​(Collection<String> hrefs,
                                                                                        Collection<String> badHrefs)
                                                                                 throws org.bedework.webdav.servlet.shared.WebdavException
        Return collection of nodes specified by list of hrefs.
        Parameters:
        hrefs - hrefs to find
        badHrefs - list of unsatisfied hrefs
        Returns:
        Collection of nodes
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException - on fatal error
      • doNodeAndChildren

        protected Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> doNodeAndChildren​(CaldavReportMethod.CalendarQueryPars cqp,
                                                                                                org.bedework.webdav.servlet.shared.WebdavNsNode node)
                                                                                         throws org.bedework.webdav.servlet.shared.WebdavException
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException
      • doNodeAndChildren

        protected Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> doNodeAndChildren​(CaldavReportMethod.CalendarQueryPars cqp,
                                                                                                org.bedework.webdav.servlet.shared.WebdavNsNode node,
                                                                                                ietf.params.xml.ns.caldav.ExpandType expand,
                                                                                                ietf.params.xml.ns.caldav.LimitRecurrenceSetType lrs,
                                                                                                List<String> retrieveList)
                                                                                         throws org.bedework.webdav.servlet.shared.WebdavException
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException
      • processFbResp

        public void processFbResp​(javax.servlet.http.HttpServletRequest req,
                                  javax.servlet.http.HttpServletResponse resp,
                                  int depth)
                           throws org.bedework.webdav.servlet.shared.WebdavException
        Handle free/busy response
        Parameters:
        req - http request
        resp - http response
        depth - from depth header
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException - on fatal error