[Bedework-commit] calendarapi r1475 - in trunk: . calCore/src/org/bedework/calcore/caldav calCore/src/org/bedework/calcore/hibernate calCoreI/src/org/bedework/calcorei calFacade/src/org/bedework/calfacade calFacade/src/org/bedework/calfacade/filter calsvc/src/org/bedework/calsvc calsvc/src/org/bedework/calsvc/client calsvc/src/org/bedework/calsvc/scheduling calsvci/src/org/bedework/calsvci

svnadmin at bedework.org svnadmin at bedework.org
Thu Mar 24 00:35:36 EDT 2011


Author: douglm
Date: 2011-03-24 00:35:25 -0400 (Thu, 24 Mar 2011)
New Revision: 1475

Modified:
   trunk/build.xml
   trunk/calCore/src/org/bedework/calcore/caldav/CalintfCaldavImpl.java
   trunk/calCore/src/org/bedework/calcore/hibernate/CalintfImpl.java
   trunk/calCore/src/org/bedework/calcore/hibernate/CoreEvents.java
   trunk/calCore/src/org/bedework/calcore/hibernate/Filters.java
   trunk/calCoreI/src/org/bedework/calcorei/CoreEventsI.java
   trunk/calFacade/src/org/bedework/calfacade/BwFilterDef.java
   trunk/calFacade/src/org/bedework/calfacade/filter/SimpleFilterParser.java
   trunk/calsvc/src/org/bedework/calsvc/CalSvcDb.java
   trunk/calsvc/src/org/bedework/calsvc/Events.java
   trunk/calsvc/src/org/bedework/calsvc/Filters.java
   trunk/calsvc/src/org/bedework/calsvc/client/ClientCollectionInfo.java
   trunk/calsvc/src/org/bedework/calsvc/client/ClientState.java
   trunk/calsvc/src/org/bedework/calsvc/client/FilterBuilder.java
   trunk/calsvc/src/org/bedework/calsvc/scheduling/FreeAndBusyHandler.java
   trunk/calsvci/src/org/bedework/calsvci/ClientStateI.java
   trunk/calsvci/src/org/bedework/calsvci/EventsI.java
   trunk/calsvci/src/org/bedework/calsvci/FiltersI.java
Log:
Rebuild caldav filtering to use classes generated by new CalDAV XML schema.

Most classes only changed because of need to rename Filter class to FilterBase to avoid conflicts.

Modified: trunk/build.xml
===================================================================
--- trunk/build.xml	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/build.xml	2011-03-24 04:35:25 UTC (rev 1475)
@@ -63,6 +63,10 @@
     	      project="rpiutil" />
     <getJar name="bw-webdavserver" version="${org.bedework.webdav.version}" 
     	      project="webdav" />
+
+    <getJar name="bw-calws-soapschema" 
+            version="${org.bedework.bwxml.version}" project="bwxml" 
+            projecthome="${bedework.home}/../bwxml" />
 
     <property name="org.bedework.annotations.base" location="${project.home}/annotations" />
     <property name="org.bedework.aptgen.base" location="${dist.home}/apt-generated" />

Modified: trunk/calCore/src/org/bedework/calcore/caldav/CalintfCaldavImpl.java
===================================================================
--- trunk/calCore/src/org/bedework/calcore/caldav/CalintfCaldavImpl.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calCore/src/org/bedework/calcore/caldav/CalintfCaldavImpl.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -21,7 +21,7 @@
 import org.bedework.calcore.CalintfBase;
 import org.bedework.calcorei.CalintfInfo;
 import org.bedework.calcorei.CoreEventInfo;
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.calfacade.BwAlarm;
 import org.bedework.calfacade.BwCalendar;
 import org.bedework.calfacade.BwDateTime;
@@ -396,7 +396,7 @@
   }
 
   public Collection<CoreEventInfo> getEvents(final Collection<BwCalendar> calendar,
-                                             final Filter filter,
+                                             final FilterBase filter,
                                              final BwDateTime startDate, final BwDateTime endDate,
                                              final List<String> retrieveList,
                                              final RecurringRetrievalMode recurRetrieval,

Modified: trunk/calCore/src/org/bedework/calcore/hibernate/CalintfImpl.java
===================================================================
--- trunk/calCore/src/org/bedework/calcore/hibernate/CalintfImpl.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calCore/src/org/bedework/calcore/hibernate/CalintfImpl.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -25,7 +25,7 @@
 import org.bedework.calcorei.CoreEventsI;
 import org.bedework.calcorei.HibSession;
 import org.bedework.caldav.util.filter.EntityTypeFilter;
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.caldav.util.filter.OrFilter;
 import org.bedework.calfacade.BwAlarm;
 import org.bedework.calfacade.BwCalendar;
@@ -812,7 +812,7 @@
    * ==================================================================== */
 
   public Collection<CoreEventInfo> getEvents(final Collection <BwCalendar> calendars,
-                                             final Filter filter,
+                                             final FilterBase filter,
                                              final BwDateTime startDate, final BwDateTime endDate,
                                              final List<String> retrieveList,
                                              final RecurringRetrievalMode recurRetrieval,
@@ -988,7 +988,7 @@
                                          final boolean ignoreTransparency)
           throws CalFacadeException {
     /* Only events and freebusy for freebusy reports. */
-    Filter filter = new OrFilter();
+    FilterBase filter = new OrFilter();
     filter.addChild(EntityTypeFilter.eventFilter(null, false));
     filter.addChild(EntityTypeFilter.freebusyFilter(null, false));
 

Modified: trunk/calCore/src/org/bedework/calcore/hibernate/CoreEvents.java
===================================================================
--- trunk/calCore/src/org/bedework/calcore/hibernate/CoreEvents.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calCore/src/org/bedework/calcore/hibernate/CoreEvents.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -25,7 +25,7 @@
 import org.bedework.calcorei.CoreEventInfo;
 import org.bedework.calcorei.CoreEventsI;
 import org.bedework.calcorei.HibSession;
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.calfacade.BwAlarm;
 import org.bedework.calfacade.BwCalendar;
 import org.bedework.calfacade.BwDateTime;
@@ -367,7 +367,7 @@
   }
 
   public Collection<CoreEventInfo> getEvents(final Collection<BwCalendar> calendars,
-                                             final Filter filter,
+                                             final FilterBase filter,
                                              final BwDateTime startDate, final BwDateTime endDate,
                                              final List<String> retrieveList,
                                              RecurringRetrievalMode recurRetrieval,

Modified: trunk/calCore/src/org/bedework/calcore/hibernate/Filters.java
===================================================================
--- trunk/calCore/src/org/bedework/calcore/hibernate/Filters.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calCore/src/org/bedework/calcore/hibernate/Filters.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -23,7 +23,7 @@
 import org.bedework.caldav.util.TimeRange;
 import org.bedework.caldav.util.filter.AndFilter;
 import org.bedework.caldav.util.filter.EntityTimeRangeFilter;
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.caldav.util.filter.ObjectFilter;
 import org.bedework.caldav.util.filter.OrFilter;
 import org.bedework.caldav.util.filter.PresenceFilter;
@@ -100,14 +100,14 @@
   /* The complete filter with some filter elements replaced by bedework specific
    * classes
    */
-  private Filter fullFilter;
+  private FilterBase fullFilter;
 
   /* A copy of the filter modified for hsql generation for overrides (and annotations
    * These can only include date and collection path terms.
    *
    * If null the unmodified filter is fine and no post-processing is needed
    */
-  private Filter overrideFilter;
+  private FilterBase overrideFilter;
 
   /* Set true during reconstruction of the filter for overrides if any terms
    * are dropped
@@ -165,7 +165,7 @@
    * @param filter
    * @throws CalFacadeException
    */
-  public Filters(final Filter filter) throws CalFacadeException {
+  public Filters(final FilterBase filter) throws CalFacadeException {
     /* Reconstruct the filter and create a date only filter for overrides. */
 
     fullFilter = reconstruct(filter, false);
@@ -309,7 +309,7 @@
    *                   Private methods
    * ==================================================================== */
 
-  private Filter getFilter() {
+  private FilterBase getFilter() {
     if (suppressFilter) {
       return null;
     }
@@ -330,7 +330,7 @@
    *
    * Mostly we replace ObjectFilter with its wrapped form.
    */
-  private Filter reconstruct(final Filter f,
+  private FilterBase reconstruct(final FilterBase f,
                              final boolean forOverrides) throws CalFacadeException {
     if (f == null) {
       return null;
@@ -339,10 +339,10 @@
     if ((f instanceof AndFilter) || (f instanceof OrFilter)) {
       boolean itsAnd = (f instanceof AndFilter);
 
-      List<Filter> fs = new ArrayList<Filter>();
+      List<FilterBase> fs = new ArrayList<FilterBase>();
 
-      for (Filter flt: f.getChildren()) {
-        Filter chf = reconstruct(flt, forOverrides);
+      for (FilterBase flt: f.getChildren()) {
+        FilterBase chf = reconstruct(flt, forOverrides);
 
         if (chf != null) {
           fs.add(chf);
@@ -357,7 +357,7 @@
         return fs.get(0);
       }
 
-      Filter res;
+      FilterBase res;
 
       if (itsAnd) {
         res = new AndFilter();
@@ -365,7 +365,7 @@
         res = new OrFilter();
       }
 
-      for (Filter flt: fs) {
+      for (FilterBase flt: fs) {
         res.addChild(flt);
       }
 
@@ -432,7 +432,7 @@
     }
   }
 
-  private boolean match(final Filter f,
+  private boolean match(final FilterBase f,
                         final BwEvent ev) throws CalFacadeException {
     if (f == null) {
       return true;
@@ -445,7 +445,7 @@
     if ((f instanceof AndFilter) || (f instanceof OrFilter)) {
       boolean itsAnd = (f instanceof AndFilter);
 
-      for (Filter flt: f.getChildren()) {
+      for (FilterBase flt: f.getChildren()) {
         if (match(flt, ev)) {
           if (!itsAnd) {
             // Success for OR
@@ -735,7 +735,7 @@
    *
    * @param f         Filter element.
    */
-  private void makeWhere(final Filter f) throws CalFacadeException {
+  private void makeWhere(final FilterBase f) throws CalFacadeException {
     if ((f instanceof AndFilter) || (f instanceof OrFilter)) {
       boolean itsAnd = (f instanceof AndFilter);
 
@@ -743,7 +743,7 @@
 
       boolean first = true;
 
-      for (Filter flt: f.getChildren()) {
+      for (FilterBase flt: f.getChildren()) {
         if (!first) {
           if (itsAnd) {
             qseg.append(" and ");
@@ -1128,11 +1128,11 @@
 
   /* Fill in the parameters after we generated the query.
    */
-  private void parReplace(final Filter f) throws CalFacadeException {
+  private void parReplace(final FilterBase f) throws CalFacadeException {
     if (f instanceof AndFilter) {
       AndFilter fb = (AndFilter)f;
 
-      for (Filter flt: fb.getChildren()) {
+      for (FilterBase flt: fb.getChildren()) {
         parReplace(flt);
       }
 
@@ -1240,7 +1240,7 @@
     if (f instanceof OrFilter) {
       OrFilter fb = (OrFilter)f;
 
-      for (Filter flt: fb.getChildren()) {
+      for (FilterBase flt: fb.getChildren()) {
         parReplace(flt);
       }
 
@@ -1326,10 +1326,10 @@
     throw new RuntimeException("Bad date " + dt);
   }*/
 
-  private void addJoins(final Filter f) throws CalFacadeException {
+  private void addJoins(final FilterBase f) throws CalFacadeException {
     if ((f instanceof AndFilter) ||
         (f instanceof OrFilter)) {
-      for (Filter flt: f.getChildren()) {
+      for (FilterBase flt: f.getChildren()) {
         addJoins(flt);
       }
 

Modified: trunk/calCoreI/src/org/bedework/calcorei/CoreEventsI.java
===================================================================
--- trunk/calCoreI/src/org/bedework/calcorei/CoreEventsI.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calCoreI/src/org/bedework/calcorei/CoreEventsI.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -18,7 +18,7 @@
 */
 package org.bedework.calcorei;
 
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.calfacade.BwCalendar;
 import org.bedework.calfacade.BwDateTime;
 import org.bedework.calfacade.BwEvent;
@@ -104,7 +104,7 @@
    * @throws CalFacadeException
    */
   public Collection<CoreEventInfo> getEvents(Collection <BwCalendar> calendars,
-                                             Filter filter,
+                                             FilterBase filter,
                                              BwDateTime startDate, BwDateTime endDate,
                                              List<String> retrieveList,
                                              RecurringRetrievalMode recurRetrieval,

Modified: trunk/calFacade/src/org/bedework/calfacade/BwFilterDef.java
===================================================================
--- trunk/calFacade/src/org/bedework/calfacade/BwFilterDef.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calFacade/src/org/bedework/calfacade/BwFilterDef.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -18,7 +18,7 @@
 */
 package org.bedework.calfacade;
 
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.calfacade.annotations.Dump;
 import org.bedework.calfacade.annotations.NoDump;
 import org.bedework.calfacade.base.BwOwnedDbentity;
@@ -73,7 +73,7 @@
   private Set<BwLongString> descriptions;
 
   /* This field is not persisted */
-  private Filter filters;
+  private FilterBase filters;
 
   /* ====================================================================
    *                   Bean methods
@@ -99,7 +99,7 @@
    *
    * @param val   BwFilter object
    */
-  public void setFilters(Filter val) {
+  public void setFilters(FilterBase val) {
     filters = val;
   }
 
@@ -108,7 +108,7 @@
    * @return BwFilter    the filters
    */
   @NoDump
-  public Filter getFilters() {
+  public FilterBase getFilters() {
     return filters;
   }
 

Modified: trunk/calFacade/src/org/bedework/calfacade/filter/SimpleFilterParser.java
===================================================================
--- trunk/calFacade/src/org/bedework/calfacade/filter/SimpleFilterParser.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calFacade/src/org/bedework/calfacade/filter/SimpleFilterParser.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -6,9 +6,9 @@
     Version 2.0 (the "License"); you may not use this file
     except in compliance with the License. You may obtain a
     copy of the License at:
-        
+
     http://www.apache.org/licenses/LICENSE-2.0
-        
+
     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on
     an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -21,11 +21,10 @@
 import org.bedework.caldav.util.TimeRange;
 import org.bedework.caldav.util.filter.AndFilter;
 import org.bedework.caldav.util.filter.EntityTypeFilter;
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.caldav.util.filter.ObjectFilter;
 import org.bedework.caldav.util.filter.PresenceFilter;
-import org.bedework.caldav.util.filter.parse.ParamFilter;
-import org.bedework.caldav.util.filter.parse.TextMatch;
+import org.bedework.caldav.util.filter.parse.Filters;
 import org.bedework.calfacade.BwCategory;
 import org.bedework.calfacade.exc.CalFacadeException;
 
@@ -36,6 +35,9 @@
 
 import org.apache.log4j.Logger;
 
+import ietf.params.xml.ns.caldav.ParamFilter;
+import ietf.params.xml.ns.caldav.TextMatch;
+
 import java.io.StreamTokenizer;
 import java.io.StringReader;
 import java.util.ArrayList;
@@ -130,7 +132,7 @@
 
   private Stack<Token> stack = new Stack<Token>();
 
-  private Stack<Filter> filterStack = new Stack<Filter>();
+  private Stack<FilterBase> filterStack = new Stack<FilterBase>();
 
   /** */
   public static class ParseResult {
@@ -138,12 +140,12 @@
     public boolean ok;
 
     /** result of a successful parse */
-    public Filter filter;
+    public FilterBase filter;
 
     /**  */
     public CalFacadeException cfe;
 
-    ParseResult(final Filter filter) {
+    ParseResult(final FilterBase filter) {
       ok = true;
       this.filter = filter;
     }
@@ -233,7 +235,7 @@
         throw new CalFacadeException(CalFacadeException.filterSyntax);
       }
 
-      Filter f = popFilters();
+      FilterBase f = popFilters();
 
       if (debug) {
         debugMsg(f.toString());
@@ -277,13 +279,13 @@
       return true;
     }
 
-    Filter filter = popFilters();
+    FilterBase filter = popFilters();
 
-    Filter topFilter = popFilters();
+    FilterBase topFilter = popFilters();
     if (anding()) {
-      filterStack.push(Filter.addAndChild(topFilter, filter));
+      filterStack.push(FilterBase.addAndChild(topFilter, filter));
     } else {
-      filterStack.push(Filter.addOrChild(topFilter, filter));
+      filterStack.push(FilterBase.addOrChild(topFilter, filter));
     }
 
     pop(); // The operator
@@ -321,13 +323,13 @@
     if ((tkn != '&') && (tkn != '|')) {
       tokenizer.pushBack();
       if (topLOp()) {
-        Filter filter = popFilters();
+        FilterBase filter = popFilters();
 
-        Filter topFilter = popFilters();
+        FilterBase topFilter = popFilters();
         if (anding()) {
-          filterStack.push(Filter.addAndChild(topFilter, filter));
+          filterStack.push(FilterBase.addAndChild(topFilter, filter));
         } else {
-          filterStack.push(Filter.addOrChild(topFilter, filter));
+          filterStack.push(FilterBase.addOrChild(topFilter, filter));
         }
         // Pop it - we used it to ensure all operators at the same level are the
         // same.
@@ -414,11 +416,18 @@
         // Expect a value
         tokenizer.assertString();
 
-        tm = new TextMatch(true, oper.op == notEqual, tokenizer.sval);
+        tm = new TextMatch();
+        tm.setValue(tokenizer.sval);
+        if (oper.op == notEqual) {
+          tm.setNegateCondition("yes");
+        } else {
+          tm.setNegateCondition("no");
+        }
+        tm.setCollation("i;ascii-casemap");
       }
     }
 
-    Filter pfilter = makePropFilter(pi, oper.op,
+    FilterBase pfilter = makePropFilter(pi, oper.op,
                                     tr,
                                     tm, null);
 
@@ -514,16 +523,16 @@
     }
   }
 
-  private Filter makePropFilter(final PropertyInfoIndex pi,
+  private FilterBase makePropFilter(final PropertyInfoIndex pi,
                                 final int oper,
                                 final TimeRange timeRange,
                                 final TextMatch match,
                                 final Collection<ParamFilter> paramFilters) throws CalFacadeException {
-    Filter filter = null;
+    FilterBase filter = null;
     final boolean exact = (oper != like) && (oper != notLike);
 
     if (pi.equals(PropertyInfoIndex.ENTITY_TYPE)) {
-      return entityFilter(match.getVal());
+      return entityFilter(match.getValue());
     }
 
     if (oper  == notDefined) {
@@ -535,7 +544,7 @@
       filter = ObjectFilter.makeFilter(null, pi, timeRange);
     } else if (match != null) {
       if (pi.equals(PropertyInfoIndex.CATEGORIES)) {
-        BwCategory cat = getCategoryByName(match.getVal());
+        BwCategory cat = getCategoryByName(match.getValue());
 
         if (cat == null) {
           return null;
@@ -546,17 +555,17 @@
         f.setEntity(cat);
 
         f.setExact(exact);
-        f.setNot(match.getNegated());
+        f.setNot(match.getNegateCondition().equals("yes"));
 
         filter = f;
       } else {
         ObjectFilter<String> f = new ObjectFilter<String>(null, pi);
-        f.setEntity(match.getVal());
-        boolean caseless = (match.getCaseless() == null) || (match.getCaseless());
-        f.setCaseless(caseless);
+        f.setEntity(match.getValue());
 
+        f.setCaseless(Filters.caseless(match));
+
         f.setExact(exact);
-        f.setNot(match.getNegated());
+        f.setNot(match.getNegateCondition().equals("yes"));
 
         filter = f;
       }
@@ -606,7 +615,7 @@
 //    return BwFilter.addAndChild(filter, processParamFilters(pi, paramFilters));
   }
 
-  private Filter entityFilter(final String val) throws CalFacadeException {
+  private FilterBase entityFilter(final String val) throws CalFacadeException {
     if ("event".equals(val)) {
       return EntityTypeFilter.eventFilter(null, false);
     }
@@ -771,7 +780,7 @@
     }
   }
 
-  private Filter popFilters() throws CalFacadeException {
+  private FilterBase popFilters() throws CalFacadeException {
     assertFiltersNotEmpty();
     return filterStack.pop();
   }

Modified: trunk/calsvc/src/org/bedework/calsvc/CalSvcDb.java
===================================================================
--- trunk/calsvc/src/org/bedework/calsvc/CalSvcDb.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calsvc/src/org/bedework/calsvc/CalSvcDb.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -20,7 +20,7 @@
 
 import org.bedework.calcorei.Calintf;
 import org.bedework.calcorei.HibSession;
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.calfacade.BwCalendar;
 import org.bedework.calfacade.BwDateTime;
 import org.bedework.calfacade.BwEvent;
@@ -173,7 +173,7 @@
    * @throws CalFacadeException
    */
   protected Collection<EventInfo> getEvents(final Collection<BwCalendar> cals,
-                                            final Filter filter,
+                                            final FilterBase filter,
                                             final BwDateTime startDate, final BwDateTime endDate,
                                             final List<String> retrieveList,
                                             final RecurringRetrievalMode recurRetrieval,

Modified: trunk/calsvc/src/org/bedework/calsvc/Events.java
===================================================================
--- trunk/calsvc/src/org/bedework/calsvc/Events.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calsvc/src/org/bedework/calsvc/Events.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -23,7 +23,7 @@
 import org.bedework.calcorei.CoreEventsI.UpdateEventResult;
 import org.bedework.caldav.util.filter.AndFilter;
 import org.bedework.caldav.util.filter.BooleanFilter;
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.caldav.util.filter.OrFilter;
 import org.bedework.calfacade.BwAttendee;
 import org.bedework.calfacade.BwCalendar;
@@ -127,7 +127,7 @@
   /* (non-Javadoc)
    * @see org.bedework.calsvci.EventsI#getEvents(org.bedework.calfacade.BwCalendar, org.bedework.caldav.util.filter.Filter, org.bedework.calfacade.BwDateTime, org.bedework.calfacade.BwDateTime, java.util.List, org.bedework.calfacade.RecurringRetrievalMode)
    */
-  public Collection<EventInfo> getEvents(final BwCalendar cal, final Filter filter,
+  public Collection<EventInfo> getEvents(final BwCalendar cal, final FilterBase filter,
                                          final BwDateTime startDate, final BwDateTime endDate,
                                          final List<String> retrieveList,
                                          final RecurringRetrievalMode recurRetrieval)
@@ -720,7 +720,7 @@
   /* Called to ensure that a subscription to a remote calendar has been refreshed
    * before we do the query.
    */
-  private void refresh(final Filter filter) throws CalFacadeException {
+  private void refresh(final FilterBase filter) throws CalFacadeException {
     if (filter instanceof BwCollectionFilter) {
       BwCollectionFilter colFilter = (BwCollectionFilter)filter;
 
@@ -730,7 +730,7 @@
 
     if ((filter instanceof AndFilter) ||
         (filter instanceof OrFilter)) {
-      for (Filter f: filter.getChildren()) {
+      for (FilterBase f: filter.getChildren()) {
         refresh(f);
       }
 
@@ -751,7 +751,7 @@
    * @throws CalFacadeException
    */
   Collection<EventInfo> getMatching(final Collection<BwCalendar> cals,
-                                    final Filter filter,
+                                    final FilterBase filter,
                                     final BwDateTime startDate, final BwDateTime endDate,
                                     final List<String> retrieveList,
                                     final RecurringRetrievalMode recurRetrieval,

Modified: trunk/calsvc/src/org/bedework/calsvc/Filters.java
===================================================================
--- trunk/calsvc/src/org/bedework/calsvc/Filters.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calsvc/src/org/bedework/calsvc/Filters.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -6,9 +6,9 @@
     Version 2.0 (the "License"); you may not use this file
     except in compliance with the License. You may obtain a
     copy of the License at:
-        
+
     http://www.apache.org/licenses/LICENSE-2.0
-        
+
     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on
     an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -19,7 +19,7 @@
 package org.bedework.calsvc;
 
 import org.bedework.calcorei.HibSession;
-import org.bedework.caldav.server.filter.FilterHandler;
+import org.bedework.caldav.util.filter.parse.EventQuery;
 import org.bedework.calfacade.BwFilterDef;
 import org.bedework.calfacade.BwPrincipal;
 import org.bedework.calfacade.BwUser;
@@ -28,6 +28,8 @@
 import org.bedework.calfacade.filter.SimpleFilterParser.ParseResult;
 import org.bedework.calsvci.FiltersI;
 
+import ietf.params.xml.ns.caldav.Filter;
+
 import java.util.Collection;
 
 /** This acts as an interface to the database for filters.
@@ -35,9 +37,6 @@
  * @author Mike Douglass       douglm - rpi.edu
  */
 class Filters extends CalSvcDb implements FiltersI {
-  /* Used for filter manipulation */
-  private FilterHandler filter;
-
   /** Constructor
    *
    * @param svci
@@ -50,7 +49,6 @@
 
   /* (non-Javadoc)
    * @see org.bedework.calsvci.FiltersI#parse(java.lang.String)
-   */
   public BwFilterDef parse(final String val) throws CalFacadeException {
     try {
       BwFilterDef fd = new BwFilterDef();
@@ -65,6 +63,7 @@
       throw new CalFacadeException(t);
     }
   }
+   */
 
   public void parse(final BwFilterDef val) throws CalFacadeException {
     String def = val.getDefinition();
@@ -76,8 +75,9 @@
       // Assume xml filter
 
       try {
-        getFilter().parse(def, null);
-        val.setFilters(getFilter().getQuery().filter);
+        Filter f = org.bedework.caldav.util.filter.parse.Filters.parse(def);
+        EventQuery eq = org.bedework.caldav.util.filter.parse.Filters.getQuery(f);
+        val.setFilters(eq.filter);
       } catch (Throwable t) {
         throw new CalFacadeException(t);
       }
@@ -101,7 +101,7 @@
    */
   public void validate(final String val) throws CalFacadeException {
     try {
-      getFilter().parse(val, null);
+      org.bedework.caldav.util.filter.parse.Filters.parse(val);
     } catch (Throwable t) {
       throw new CalFacadeException(t);
     }
@@ -202,12 +202,4 @@
 
     return (BwFilterDef)sess.getUnique();
   }
-
-  private FilterHandler getFilter() throws CalFacadeException {
-    if (filter == null) {
-      filter = new FilterHandler(debug);
-    }
-
-    return filter;
-  }
 }

Modified: trunk/calsvc/src/org/bedework/calsvc/client/ClientCollectionInfo.java
===================================================================
--- trunk/calsvc/src/org/bedework/calsvc/client/ClientCollectionInfo.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calsvc/src/org/bedework/calsvc/client/ClientCollectionInfo.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -18,7 +18,7 @@
 */
 package org.bedework.calsvc.client;
 
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 
 import java.io.Serializable;
 
@@ -37,7 +37,7 @@
 
   private int calType;
 
-  private Filter filter;
+  private FilterBase filter;
 
   /** Create an entry for a path
    *
@@ -47,7 +47,7 @@
    * @param filter - null for unfiltered
    */
   public ClientCollectionInfo(String path, String color, int calType,
-                              Filter filter) {
+                              FilterBase filter) {
     this.path = path;
     this.color = color;
     this.calType = calType;
@@ -82,7 +82,7 @@
    *
    *  @return Filter to apply
    */
-  public Filter getFilter() {
+  public FilterBase getFilter() {
     return filter;
   }
 

Modified: trunk/calsvc/src/org/bedework/calsvc/client/ClientState.java
===================================================================
--- trunk/calsvc/src/org/bedework/calsvc/client/ClientState.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calsvc/src/org/bedework/calsvc/client/ClientState.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -18,7 +18,7 @@
 */
 package org.bedework.calsvc.client;
 
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.calfacade.BwCalendar;
 import org.bedework.calfacade.BwUser;
 import org.bedework.calfacade.exc.CalFacadeException;
@@ -50,7 +50,7 @@
   private String vpathTarget;
 
   /* Filter resulting from the view or vpath */
-  private Filter filter;
+  private FilterBase filter;
 
   /* Built as we build filters. */
   private ColorMap colorMap;
@@ -198,7 +198,7 @@
   /* (non-Javadoc)
    * @see org.bedework.calsvci.ClientStateI#getViewFilter(org.bedework.calfacade.BwCalendar)
    */
-  public Filter getViewFilter(final BwCalendar cal) throws CalFacadeException {
+  public FilterBase getViewFilter(final BwCalendar cal) throws CalFacadeException {
     List<String> paths;
 
     if (cal != null) {

Modified: trunk/calsvc/src/org/bedework/calsvc/client/FilterBuilder.java
===================================================================
--- trunk/calsvc/src/org/bedework/calsvc/client/FilterBuilder.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calsvc/src/org/bedework/calsvc/client/FilterBuilder.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -20,7 +20,7 @@
 
 import org.bedework.caldav.util.filter.AndFilter;
 import org.bedework.caldav.util.filter.BooleanFilter;
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.caldav.util.filter.ObjectFilter;
 import org.bedework.caldav.util.filter.OrFilter;
 import org.bedework.calfacade.BwCalendar;
@@ -95,7 +95,7 @@
   //private HashMap<String, CalFilter> filterCache = new HashMap<String, CalFilter>();
 
   private static class CalFilter {
-    Filter filter;
+    FilterBase filter;
   }
 
   private static class EntityCalFilter extends CalFilter {
@@ -130,10 +130,10 @@
    * @return BwFilter or null
    * @throws CalFacadeException
    */
-  public Filter buildFilter(final List<String> paths,
+  public FilterBase buildFilter(final List<String> paths,
                             final String filterStr,
                             final boolean explicit) throws CalFacadeException {
-    Filter globalFilter = null;
+    FilterBase globalFilter = null;
 
     if (filterStr != null) {
       globalFilter = parseExpr(filterStr);
@@ -192,10 +192,10 @@
      * Re-express this as BwFilters
      */
 
-    Filter f = makeBwFilter(ocf);
+    FilterBase f = makeBwFilter(ocf);
 
     if (globalFilter != null) {
-      Filter and = new AndFilter();
+      FilterBase and = new AndFilter();
 
       and.addChild(globalFilter);
       and.addChild(f);
@@ -216,7 +216,7 @@
     return f;
   }
 
-  private Filter makeBwFilter(final CalFilter val) {
+  private FilterBase makeBwFilter(final CalFilter val) {
     if (val instanceof OrCalFilter) {
       OrCalFilter ocf = (OrCalFilter)val;
 
@@ -229,13 +229,13 @@
         return makeBwFilter(ocf.terms.iterator().next());
       }
 
-      Filter res = null;
+      FilterBase res = null;
 
       for (CalFilter cf: ocf.terms) {
-        Filter f = makeBwFilter(cf);
+        FilterBase f = makeBwFilter(cf);
 
         if (f != null) {
-          res = Filter.addOrChild(res, f);
+          res = FilterBase.addOrChild(res, f);
         }
       }
 
@@ -248,9 +248,9 @@
       return ecf.filter;
     }
 
-    Filter f = new BwCollectionFilter(null, ecf.cal);
+    FilterBase f = new BwCollectionFilter(null, ecf.cal);
 
-    return Filter.addAndChild(f, ecf.filter);
+    return FilterBase.addAndChild(f, ecf.filter);
   }
 
   /* Create a filter for the supplied collection object.
@@ -269,7 +269,7 @@
                                   final boolean explicitSelection,
                                   final ArrayList<String> pathElements) throws CalFacadeException {
     /* Result of parsing any filter attached to this entity. */
-    Filter fltr = null;
+    FilterBase fltr = null;
 
     if (cal.getFilterExpr() != null) {
       fltr = parseExpr(cal.getFilterExpr());
@@ -318,7 +318,7 @@
     return null;
   }
 
-  private CalFilter anded(final Filter fltr,
+  private CalFilter anded(final FilterBase fltr,
                           final CalFilter calFilter) throws CalFacadeException {
     if (calFilter == null) {
       /* PRobably some sort of error */
@@ -327,7 +327,7 @@
 
     if (fltr != null) {
       // We have something to add
-      calFilter.filter = Filter.addAndChild(fltr, calFilter.filter);
+      calFilter.filter = FilterBase.addAndChild(fltr, calFilter.filter);
     }
 
     //filterCache.put(calPath, calFilter);
@@ -430,7 +430,7 @@
 
         if ((!(ecalf.filter instanceof ObjectFilter)) ||
             (!(ecf.filter instanceof ObjectFilter))) {
-          ecalf.filter = Filter.addOrChild(ecalf.filter, ecf.filter);
+          ecalf.filter = FilterBase.addOrChild(ecalf.filter, ecf.filter);
           return;  // Merged
         }
 
@@ -445,7 +445,7 @@
         if (!ocalf.getPropertyIndex().equals(ocf.getPropertyIndex()) ||
             !ocalf.getExact() || !ocf.getExact() ||
             PropertyInfo.propertyInfo.get(ocalf.getPropertyIndex()).getMultiValued()) {
-          ecalf.filter = Filter.addOrChild(ecalf.filter, ecf.filter);
+          ecalf.filter = FilterBase.addOrChild(ecalf.filter, ecf.filter);
           return;  // Merged
         }
 
@@ -475,7 +475,7 @@
 
         if ((o1 == null) || (o2 == null) ||
             (!o1.getClass().equals(o2.getClass()))) {
-          ecalf.filter = Filter.addOrChild(ecalf.filter, ecf.filter);
+          ecalf.filter = FilterBase.addOrChild(ecalf.filter, ecf.filter);
           return;  // Merged
         }
 
@@ -510,14 +510,14 @@
     String path;
 
     /* This is the combined filter for this path. */
-    Filter filter;
+    FilterBase filter;
 
     ColorInfo() {}
 
     ColorInfo(final BwCalendar col,
               final String color,
               final String path,
-              final Filter filter) {
+              final FilterBase filter) {
       this.col = col;
       this.color = color;
       this.path = path;
@@ -538,13 +538,13 @@
       return col != null;
     }
 
-    void updateFilter(final Filter val) {
+    void updateFilter(final FilterBase val) {
       if (filter == null) {
         filter = val;
         return;
       }
 
-      filter = Filter.addAndChild(filter, val);
+      filter = FilterBase.addAndChild(filter, val);
     }
 
     @Override
@@ -589,7 +589,7 @@
    * @param fltr Result of parsing any filter attached to this entity.
    */
   private ColorInfo updateColorInfo(final BwCalendar col,
-                                    final Filter fltr,
+                                    final FilterBase fltr,
                                     final ColorInfo parCi) throws CalFacadeException {
     ColorInfo ci;
 
@@ -627,17 +627,17 @@
     return ci;
   }
 
-  private void dump(final Filter f, final String curLine) {
+  private void dump(final FilterBase f, final String curLine) {
     if (f instanceof OrFilter) {
       dmsg(curLine + "  OR ");
-      Iterator<Filter> it = f.getChildren().iterator();
+      Iterator<FilterBase> it = f.getChildren().iterator();
       dumpChildren(it, curLine);
       return;
     }
 
     if (f instanceof AndFilter) {
       dmsg(curLine + "  AND ");
-      Iterator<Filter> it = f.getChildren().iterator();
+      Iterator<FilterBase> it = f.getChildren().iterator();
       dumpChildren(it, curLine);
       return;
     }
@@ -680,7 +680,7 @@
     dmsg("------- end color map ------");
   }
 
-  private Filter parseExpr(final String expr) throws CalFacadeException {
+  private FilterBase parseExpr(final String expr) throws CalFacadeException {
     if (parser == null) {
       parser = svci.getFilterParser();
     }
@@ -694,13 +694,13 @@
     return pr.filter;
   }
 
-  private void dumpChildren(final Iterator<Filter> it,
+  private void dumpChildren(final Iterator<FilterBase> it,
                             final String curLine) {
     if (!it.hasNext()) {
       return;
     }
 
-    Filter f = it.next();
+    FilterBase f = it.next();
 
     if (it.hasNext()) {
       dumpChildren(it, curLine + "   |   ");

Modified: trunk/calsvc/src/org/bedework/calsvc/scheduling/FreeAndBusyHandler.java
===================================================================
--- trunk/calsvc/src/org/bedework/calsvc/scheduling/FreeAndBusyHandler.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calsvc/src/org/bedework/calsvc/scheduling/FreeAndBusyHandler.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -19,7 +19,7 @@
 package org.bedework.calsvc.scheduling;
 
 import org.bedework.caldav.util.filter.EntityTypeFilter;
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.caldav.util.filter.OrFilter;
 import org.bedework.calfacade.BwAttendee;
 import org.bedework.calfacade.BwCalendar;
@@ -165,7 +165,7 @@
 
     Collection<EventInfo> events = new TreeSet<EventInfo>();
     /* Only events and freebusy for freebusy reports. */
-    Filter filter = new OrFilter();
+    FilterBase filter = new OrFilter();
     filter.addChild(EntityTypeFilter.eventFilter(null, false));
     filter.addChild(EntityTypeFilter.freebusyFilter(null, false));
 

Modified: trunk/calsvci/src/org/bedework/calsvci/ClientStateI.java
===================================================================
--- trunk/calsvci/src/org/bedework/calsvci/ClientStateI.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calsvci/src/org/bedework/calsvci/ClientStateI.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -18,7 +18,7 @@
 */
 package org.bedework.calsvci;
 
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.calfacade.BwCalendar;
 import org.bedework.calfacade.exc.CalFacadeException;
 import org.bedework.calfacade.svc.BwView;
@@ -124,7 +124,7 @@
    * @return BwFilter or null
    * @throws CalFacadeException
    */
-  public abstract Filter getViewFilter(BwCalendar cal)
+  public abstract FilterBase getViewFilter(BwCalendar cal)
           throws CalFacadeException;
 
   /** Attempt to set the color for the given events. If there is no appropriate

Modified: trunk/calsvci/src/org/bedework/calsvci/EventsI.java
===================================================================
--- trunk/calsvci/src/org/bedework/calsvci/EventsI.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calsvci/src/org/bedework/calsvci/EventsI.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -18,7 +18,7 @@
 */
 package org.bedework.calsvci;
 
-import org.bedework.caldav.util.filter.Filter;
+import org.bedework.caldav.util.filter.FilterBase;
 import org.bedework.calfacade.BwCalendar;
 import org.bedework.calfacade.BwDateTime;
 import org.bedework.calfacade.BwEvent;
@@ -95,7 +95,7 @@
    * @throws CalFacadeException
    */
   public Collection<EventInfo> getEvents(BwCalendar cal,
-                                         Filter filter,
+                                         FilterBase filter,
                                          BwDateTime startDate,
                                          BwDateTime endDate,
                                          List<String> retrieveList,

Modified: trunk/calsvci/src/org/bedework/calsvci/FiltersI.java
===================================================================
--- trunk/calsvci/src/org/bedework/calsvci/FiltersI.java	2011-03-21 01:06:11 UTC (rev 1474)
+++ trunk/calsvci/src/org/bedework/calsvci/FiltersI.java	2011-03-24 04:35:25 UTC (rev 1475)
@@ -6,9 +6,9 @@
     Version 2.0 (the "License"); you may not use this file
     except in compliance with the License. You may obtain a
     copy of the License at:
-        
+
     http://www.apache.org/licenses/LICENSE-2.0
-        
+
     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on
     an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -44,8 +44,8 @@
    * @param  val       String xml filter definition
    * @return BwFilterDef object
    * @throws CalFacadeException
+  public BwFilterDef parse(String val) throws CalFacadeException;
    */
-  public BwFilterDef parse(String val) throws CalFacadeException;
 
   /** Parse the xml definition in the given filter object
    *



More information about the Bedework-commit mailing list