diff options
Diffstat (limited to 'mailnews/addrbook/public/nsIAbBooleanExpression.idl')
-rw-r--r-- | mailnews/addrbook/public/nsIAbBooleanExpression.idl | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/mailnews/addrbook/public/nsIAbBooleanExpression.idl b/mailnews/addrbook/public/nsIAbBooleanExpression.idl new file mode 100644 index 000000000..aeef67b46 --- /dev/null +++ b/mailnews/addrbook/public/nsIAbBooleanExpression.idl @@ -0,0 +1,122 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsISupports.idl" + +interface nsIArray; +typedef long nsAbBooleanConditionType; + +/** + * Condition types + * + * Constants defining the types of condition + * to obtain a boolean result of TRUE or FALSE + * + */ +[scriptable, uuid(F51387B1-5AEF-4A1C-830E-7CD3B02366CE)] +interface nsIAbBooleanConditionTypes +{ + const long Exists = 0; + const long DoesNotExist = 1; + const long Contains = 2; + const long DoesNotContain = 3; + const long Is = 4; + const long IsNot = 5; + const long BeginsWith = 6; + const long EndsWith = 7; + const long LessThan = 8; + const long GreaterThan = 9; + const long SoundsLike = 10; + const long RegExp = 11; +}; + + +typedef long nsAbBooleanOperationType; + +/* + * Operation types + * + * Constants defining the boolean operation that + * should be performed between two boolean expressions + * + */ +[uuid(9bdd2e51-2be4-49a4-a558-36d1a812231a)] +interface nsIAbBooleanOperationTypes +{ + const long AND = 0; + const long OR = 1; + const long NOT = 2; +}; + + +/** + * String condition + * + * A string condition represents a leaf node in a + * boolean expression tree and represents + * test which will return TRUE or FALSE + * + * Condition is an expression which is a + * leaf node in a boolean expression tree + * + */ +[scriptable, uuid(C3869D72-CFD0-45F0-A0EC-3F67D83C7110)] +interface nsIAbBooleanConditionString : nsISupports +{ + /** + * The condition for how the a value + * should be compared + * + */ + attribute nsAbBooleanConditionType condition; + + /** + * The lhs of the condition + * + * Represents a property name which + * should be evaluated to obtain the + * lhs. + * + */ + attribute string name; + + /** + * The rhs of the condition + * + * <name> [condition] value + * + */ + attribute wstring value; +}; + +/** + * N Boolean expression type + * + * Supports Unary Binary and N boolean expressions + * + * An operation represents a node in a boolean + * expression tree which may contain one or more + * child conditions or expressions + * + */ +[scriptable, uuid(223a9462-1aeb-4c1f-b069-5fc6278989b2)] +interface nsIAbBooleanExpression: nsISupports +{ + /** + * The boolean operation to be applied to + * results of all evaluated expressions + * + */ + attribute nsAbBooleanOperationType operation; + + /** + * List of peer expressions + * + * e1 [op] e2 [op] .... en + * + */ + attribute nsIArray expressions; +}; + |