diff --git a/src/java/davmail/exchange/ews/MultipleOperandBooleanExpression.java b/src/java/davmail/exchange/ews/MultipleOperandBooleanExpression.java new file mode 100644 index 00000000..6a0455cb --- /dev/null +++ b/src/java/davmail/exchange/ews/MultipleOperandBooleanExpression.java @@ -0,0 +1,53 @@ +/* + * DavMail POP/IMAP/SMTP/CalDav/LDAP Exchange Gateway + * Copyright (C) 2010 Mickael Guessant + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package davmail.exchange.ews; + +import java.io.IOException; +import java.io.Writer; + +/** + * Boolean search expression + */ +public class MultipleOperandBooleanExpression implements SearchExpression { + public enum Operator { + And, Or, Not + } + + private SearchExpression[] searchExpressions; + private Operator operator; + + public MultipleOperandBooleanExpression(Operator operator, SearchExpression... searchExpressions) { + this.searchExpressions = searchExpressions; + this.operator = operator; + } + + public void write(Writer writer) throws IOException { + writer.write(""); + + for (SearchExpression searchExpression : searchExpressions) { + searchExpression.write(writer); + } + + writer.write(""); + } +} diff --git a/src/java/davmail/exchange/ews/SearchExpression.java b/src/java/davmail/exchange/ews/SearchExpression.java index cb92531f..4dd8a260 100644 --- a/src/java/davmail/exchange/ews/SearchExpression.java +++ b/src/java/davmail/exchange/ews/SearchExpression.java @@ -24,12 +24,12 @@ import java.io.Writer; /** * EWS Search Expression. */ -public abstract class SearchExpression { +public interface SearchExpression { /** * Write XML content to writer. * * @param writer writer * @throws IOException on error */ - public abstract void write(Writer writer) throws IOException; + public void write(Writer writer) throws IOException; } diff --git a/src/java/davmail/exchange/ews/TwoOperandExpression.java b/src/java/davmail/exchange/ews/TwoOperandExpression.java index 69d5fd65..6e346a78 100644 --- a/src/java/davmail/exchange/ews/TwoOperandExpression.java +++ b/src/java/davmail/exchange/ews/TwoOperandExpression.java @@ -24,7 +24,7 @@ import java.io.Writer; /** * Two operand expression. */ -public class TwoOperandExpression extends SearchExpression { +public class TwoOperandExpression implements SearchExpression { protected enum Operator { IsEqualTo, IsNotEqualTo, IsGreaterThan, IsGreaterThanOrEqualTo, IsLessThan, IsLessThanOrEqualTo } @@ -46,7 +46,6 @@ public class TwoOperandExpression extends SearchExpression { this.value = value; } - @Override public void write(Writer writer) throws IOException { writer.write("