summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/addrbook/src/nsAbBooleanExpression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mailnews/addrbook/src/nsAbBooleanExpression.cpp')
-rw-r--r--comm/mailnews/addrbook/src/nsAbBooleanExpression.cpp98
1 files changed, 98 insertions, 0 deletions
diff --git a/comm/mailnews/addrbook/src/nsAbBooleanExpression.cpp b/comm/mailnews/addrbook/src/nsAbBooleanExpression.cpp
new file mode 100644
index 0000000000..434c8756e6
--- /dev/null
+++ b/comm/mailnews/addrbook/src/nsAbBooleanExpression.cpp
@@ -0,0 +1,98 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* 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 "nsAbBooleanExpression.h"
+#include "nsComponentManagerUtils.h"
+
+NS_IMPL_ISUPPORTS(nsAbBooleanConditionString, nsIAbBooleanConditionString)
+
+nsAbBooleanConditionString::nsAbBooleanConditionString()
+ : mCondition(nsIAbBooleanConditionTypes::Exists) {}
+
+nsAbBooleanConditionString::~nsAbBooleanConditionString() {}
+
+/* attribute nsAbBooleanConditionType condition; */
+NS_IMETHODIMP nsAbBooleanConditionString::GetCondition(
+ nsAbBooleanConditionType* aCondition) {
+ if (!aCondition) return NS_ERROR_NULL_POINTER;
+
+ *aCondition = mCondition;
+
+ return NS_OK;
+}
+NS_IMETHODIMP nsAbBooleanConditionString::SetCondition(
+ nsAbBooleanConditionType aCondition) {
+ mCondition = aCondition;
+
+ return NS_OK;
+}
+
+/* attribute string name; */
+NS_IMETHODIMP nsAbBooleanConditionString::GetName(char** aName) {
+ if (!aName) return NS_ERROR_NULL_POINTER;
+
+ *aName = mName.IsEmpty() ? 0 : ToNewCString(mName);
+
+ return NS_OK;
+}
+NS_IMETHODIMP nsAbBooleanConditionString::SetName(const char* aName) {
+ if (!aName) return NS_ERROR_NULL_POINTER;
+
+ mName = aName;
+
+ return NS_OK;
+}
+
+/* attribute wstring value; */
+NS_IMETHODIMP nsAbBooleanConditionString::GetValue(char16_t** aValue) {
+ if (!aValue) return NS_ERROR_NULL_POINTER;
+
+ *aValue = ToNewUnicode(mValue);
+
+ return NS_OK;
+}
+NS_IMETHODIMP nsAbBooleanConditionString::SetValue(const char16_t* aValue) {
+ if (!aValue) return NS_ERROR_NULL_POINTER;
+
+ mValue = aValue;
+
+ return NS_OK;
+}
+
+NS_IMPL_ISUPPORTS(nsAbBooleanExpression, nsIAbBooleanExpression)
+
+nsAbBooleanExpression::nsAbBooleanExpression()
+ : mOperation(nsIAbBooleanOperationTypes::AND) {}
+
+nsAbBooleanExpression::~nsAbBooleanExpression() {}
+
+/* attribute nsAbBooleanOperationType operation; */
+NS_IMETHODIMP nsAbBooleanExpression::GetOperation(
+ nsAbBooleanOperationType* aOperation) {
+ if (!aOperation) return NS_ERROR_NULL_POINTER;
+
+ *aOperation = mOperation;
+
+ return NS_OK;
+}
+NS_IMETHODIMP nsAbBooleanExpression::SetOperation(
+ nsAbBooleanOperationType aOperation) {
+ mOperation = aOperation;
+
+ return NS_OK;
+}
+
+/* attribute Array<nsISupports> expressions; */
+NS_IMETHODIMP nsAbBooleanExpression::GetExpressions(
+ nsTArray<RefPtr<nsISupports>>& aExpressions) {
+ aExpressions = mExpressions.Clone();
+ return NS_OK;
+}
+
+NS_IMETHODIMP nsAbBooleanExpression::SetExpressions(
+ const nsTArray<RefPtr<nsISupports>>& aExpressions) {
+ mExpressions = aExpressions.Clone();
+ return NS_OK;
+}