26#include "../dom/document.hxx"
29using namespace css::uno;
30using namespace css::xml::dom;
31using namespace css::xml::xpath;
35 static XPathObjectType
lcl_GetType(xmlXPathObjectPtr
const pXPathObj)
37 switch (pXPathObj->type)
40 return XPathObjectType_XPATH_UNDEFINED;
42 return XPathObjectType_XPATH_NODESET;
44 return XPathObjectType_XPATH_BOOLEAN;
46 return XPathObjectType_XPATH_NUMBER;
48 return XPathObjectType_XPATH_STRING;
49#if LIBXML_VERSION < 21000 || defined(LIBXML_XPTR_LOCS_ENABLED)
51 return XPathObjectType_XPATH_POINT;
53 return XPathObjectType_XPATH_RANGE;
54 case XPATH_LOCATIONSET:
55 return XPathObjectType_XPATH_LOCATIONSET;
58 return XPathObjectType_XPATH_USERS;
60 return XPathObjectType_XPATH_XSLT_TREE;
62 return XPathObjectType_XPATH_UNDEFINED;
68 ::osl::Mutex & rMutex,
69 std::shared_ptr<xmlXPathObject>
const& pXPathObj)
70 : m_pDocument(
std::move(pDocument))
72 , m_pXPathObj(pXPathObj)
88 Reference< XNodeList > SAL_CALL
93 Reference< XNodeList >
const xRet(
103 ::osl::MutexGuard
const g(
m_rMutex);
105 return xmlXPathCastToBoolean(
m_pXPathObj.get()) != 0;
113 ::osl::MutexGuard
const g(
m_rMutex);
123 ::osl::MutexGuard
const g(
m_rMutex);
125 return static_cast<sal_Int16
>(xmlXPathCastToNumber(
m_pXPathObj.get()));
133 ::osl::MutexGuard
const g(
m_rMutex);
135 return static_cast<sal_Int32
>(xmlXPathCastToNumber(
m_pXPathObj.get()));
143 ::osl::MutexGuard
const g(
m_rMutex);
145 return static_cast<sal_Int64
>(xmlXPathCastToNumber(
m_pXPathObj.get()));
153 ::osl::MutexGuard
const g(
m_rMutex);
155 return static_cast<float>(xmlXPathCastToNumber(
m_pXPathObj.get()));
163 ::osl::MutexGuard
const g(
m_rMutex);
173 ::osl::MutexGuard
const g(
m_rMutex);
175 std::shared_ptr<xmlChar const> str(
177 char const*
const pS(
reinterpret_cast<char const*
>(str.get()));
178 return OUString(
pS, strlen(
pS), RTL_TEXTENCODING_UTF8);
std::shared_ptr< xmlXPathObject > const m_pXPathObj
virtual sal_Int64 SAL_CALL getHyper() override
get number as hyper
virtual sal_Int8 SAL_CALL getByte() override
get number as byte
virtual sal_Bool SAL_CALL getBoolean() override
get value of a boolean object
css::xml::xpath::XPathObjectType const m_XPathObjectType
virtual OUString SAL_CALL getString() override
get string value
virtual sal_Int32 SAL_CALL getLong() override
get number as long
virtual double SAL_CALL getDouble() override
get number as double
virtual sal_Int16 SAL_CALL getShort() override
get number as short
CXPathObject(::rtl::Reference< DOM::CDocument > pDocument, ::osl::Mutex &rMutex, std::shared_ptr< xmlXPathObject > const &pXPathObj)
::rtl::Reference< DOM::CDocument > const m_pDocument
virtual css::uno::Reference< css::xml::dom::XNodeList > SAL_CALL getNodeList() override
get the nodes from a nodelist type object
virtual float SAL_CALL getFloat() override
get number as float
virtual css::xml::xpath::XPathObjectType SAL_CALL getObjectType() override
get object type
static XPathObjectType lcl_GetType(xmlXPathObjectPtr const pXPathObj)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)