1
0
mirror of https://github.com/moparisthebest/davmail synced 2024-12-13 11:12:22 -05:00

EWS: implement MultipleOperandBooleanExpression (And, Or, Not conditions)

git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1077 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
mguessan 2010-06-07 16:01:20 +00:00
parent 20c466059a
commit 2275c3fb15
3 changed files with 56 additions and 4 deletions

View File

@ -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("<t:");
writer.write(operator.toString());
writer.write(">");
for (SearchExpression searchExpression : searchExpressions) {
searchExpression.write(writer);
}
writer.write("</t:");
writer.write(operator.toString());
writer.write(">");
}
}

View File

@ -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;
}

View File

@ -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("<t:");
writer.write(operator.toString());