[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