Class FilterHandler

  • All Implemented Interfaces:
    org.bedework.util.logging.Logged

    public class FilterHandler
    extends Object
    implements org.bedework.util.logging.Logged
    Class to represent a calendar-query filter
       
    
       10.3.1 CALDAV:comp-filter XML Element
    
        Name:
            comp-filter
        Namespace:
            urn:ietf:params:xml:ns:caldav
        Purpose:
            Limits the search to only the chosen component types.
        Description:
            The "name" attribute is an iCalendar component type (e.g., "VEVENT").
            When this element is present, the server should only return a component
            if it matches the filter, which is to say:
    
           A component of the type specified by the "name" attribute
           exists, and the CALDAV:comp-filter is empty, OR
    
           it contains at least one recurrence instance scheduled to overlap a
           given time range if a CALDAV:time-range XML element is specified, and
           that any CALDAV:prop-filter and CALDAV:comp-filter child elements
           also match.
    
    
        
    
        
    
        10.3.2 CALDAV:prop-filter XML Element
    
        Name:
            prop-filter
        Namespace:
            urn:ietf:params:xml:ns:caldav
        Purpose:
            Limits the search to specific properties.
        Description:
            The "name" attribute MUST contain an iCalendar property name
            (e.g., "ATTENDEE"). When the 'prop-filter' executes, a property matches if:
    
           A property of the type specified by the "name" attribute
           exists, and the CALDAV:prop-filter is empty, OR it matches the
           CALDAV:time-range XML element or CALDAV:text-match conditions
           if specified, and that any CALDAV:param-filter child elements
           also match.
    
        or:
    
           A property of the type specified by the "name" attribute does
           not exist, and the CALDAV:is-not-defined element is specified.
    
        
    
        
    
        10.3.3 CALDAV:param-filter XML Element
    
        Name:
            param-filter
        Namespace:
            urn:ietf:params:xml:ns:caldav
        Purpose:
            Limits the search to specific parameters.
        Description:
            The "param-filter" element limits the search result to the set of resources containing properties with parameters that meet the parameter filter rules. When this filter executes, a parameter matches if:
    
        ("is-defined matches" OR "text-match matches")
    
        
    
        
    
     
    Author:
    Mike Douglass douglm @ rpi.edu
    • Constructor Summary

      Constructors 
      Constructor Description
      FilterHandler​(ietf.params.xml.ns.caldav.FilterType f)
      Constructor
    • Constructor Detail

      • FilterHandler

        public FilterHandler​(ietf.params.xml.ns.caldav.FilterType f)
        Constructor
        Parameters:
        f - a filter
    • Method Detail

      • query

        public Collection<CalDAVEvent<?>> query​(CaldavBwNode wdnode,
                                                List<String> retrieveList,
                                                RetrievalMode retrieveRecur)
                                         throws org.bedework.webdav.servlet.shared.WebdavException
        Use the given query to return a collection of nodes. An exception will be raised if the entire query fails for some reason (access, etc). An empty collection will be returned if no objects match.
        Parameters:
        wdnode - WebdavNsNode defining root of search
        retrieveList - If non-null limit required fields.
        retrieveRecur - How we retrieve recurring events
        Returns:
        Collection of event objects (null or empty for no result)
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException
      • postFilter

        public Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> postFilter​(Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> nodes)
                                                                               throws org.bedework.webdav.servlet.shared.WebdavException
        Carry out any postfiltering on the collection of initialised nodes,
        Parameters:
        nodes - Collection of initialised CaldavBwNode
        Returns:
        Collection of filtered nodes (empty for no result)
        Throws:
        org.bedework.webdav.servlet.shared.WebdavException
      • getLogger

        public org.bedework.util.logging.BwLogger getLogger()
        Specified by:
        getLogger in interface org.bedework.util.logging.Logged