1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #ifndef txXPathObjectAdaptor_h__ 7 #define txXPathObjectAdaptor_h__ 8 9 #include "txExprResult.h" 10 #include "txINodeSet.h" 11 #include "txIXPathObject.h" 12 13 /** 14 * Implements an XPCOM wrapper around XPath data types boolean, number, string, 15 * or nodeset. 16 */ 17 18 class txXPathObjectAdaptor : public txIXPathObject 19 { 20 public: txXPathObjectAdaptor(txAExprResult * aValue)21 explicit txXPathObjectAdaptor(txAExprResult* aValue) : mValue(aValue) 22 { 23 NS_ASSERTION(aValue, 24 "Don't create a txXPathObjectAdaptor if you don't have a " 25 "txAExprResult"); 26 } 27 28 NS_DECL_ISUPPORTS 29 NS_IMETHOD_(txAExprResult *)30 NS_IMETHOD_(txAExprResult*) GetResult() override 31 { 32 return mValue; 33 } 34 35 protected: txXPathObjectAdaptor()36 txXPathObjectAdaptor() : mValue(nullptr) 37 { 38 } 39 ~txXPathObjectAdaptor()40 virtual ~txXPathObjectAdaptor() {} 41 42 RefPtr<txAExprResult> mValue; 43 }; 44 45 #endif // txXPathObjectAdaptor_h__ 46