summaryrefslogtreecommitdiffstats
path: root/dom/xslt/xpath/txBooleanResult.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dom/xslt/xpath/txBooleanResult.cpp')
-rw-r--r--dom/xslt/xpath/txBooleanResult.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/dom/xslt/xpath/txBooleanResult.cpp b/dom/xslt/xpath/txBooleanResult.cpp
new file mode 100644
index 0000000000..1d69a8c347
--- /dev/null
+++ b/dom/xslt/xpath/txBooleanResult.cpp
@@ -0,0 +1,48 @@
+/* -*- Mode: C++; tab-width: 4; 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/. */
+
+/*
+ * Boolean Expression result
+ */
+
+#include "txExprResult.h"
+
+/**
+ * Creates a new BooleanResult with the value of the given bool parameter
+ * @param boolean the bool to use for initialization of this BooleanResult's
+ * value
+ **/
+BooleanResult::BooleanResult(bool boolean) : txAExprResult(nullptr) {
+ this->value = boolean;
+} //-- BooleanResult
+
+/*
+ * Virtual Methods from ExprResult
+ */
+
+short BooleanResult::getResultType() {
+ return txAExprResult::BOOLEAN;
+} //-- getResultType
+
+void BooleanResult::stringValue(nsString& aResult) {
+ if (value) {
+ aResult.AppendLiteral("true");
+ } else {
+ aResult.AppendLiteral("false");
+ }
+}
+
+const nsString* BooleanResult::stringValuePointer() {
+ // In theory we could set strings containing "true" and "false" somewhere,
+ // but most stylesheets never get the stringvalue of a bool so that won't
+ // really buy us anything.
+ return nullptr;
+}
+
+bool BooleanResult::booleanValue() { return this->value; } //-- toBoolean
+
+double BooleanResult::numberValue() {
+ return (value) ? 1.0 : 0.0;
+} //-- toNumber