diff options
author | Oliver Bolte <obo@openoffice.org> | 2004-11-16 10:01:46 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2004-11-16 10:01:46 +0000 |
commit | 6722ef297996d8761baefb59327ecb17eba6e7c1 (patch) | |
tree | 1bbb6ccd634055e1c5b14d6845b8c6198cf3a934 /forms/source | |
parent | 7c8cf3139a7d3ae7c3e9a84f9f46380e2b7bb658 (diff) |
INTEGRATION: CWS eforms2 (1.1.2); FILE ADDED
2004/10/27 09:52:32 dvo 1.1.2.5: do not use printf debugging in production code
Issue number:
Submitted by:
Reviewed by:
2004/09/23 09:26:45 dvo 1.1.2.4: implement current() XPath extensions function (from XForms 1.1 spec)
Issue number:
Submitted by:
Reviewed by:
2004/07/08 10:59:49 fs 1.1.2.3: #i10000# post-resync problems
2004/05/13 11:59:13 lo 1.1.2.2: #i28981# xforms xpath functions
2004/05/10 09:35:19 lo 1.1.2.1: #i28981# xpath extensions
Diffstat (limited to 'forms/source')
-rw-r--r-- | forms/source/xforms/xpathlib/extension.cxx | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/forms/source/xforms/xpathlib/extension.cxx b/forms/source/xforms/xpathlib/extension.cxx new file mode 100644 index 000000000000..dd05927e8286 --- /dev/null +++ b/forms/source/xforms/xpathlib/extension.cxx @@ -0,0 +1,78 @@ +#include <stdio.h> +#include <com/sun/star/xml/xpath/Libxml2ExtensionHandle.hpp> +#include <com/sun/star/beans/NamedValue.hpp> +#include "extension.hxx" +#include "xpathlib.hxx" + +#ifndef FRM_MODULE_HXX +#include "frm_module.hxx" +#endif + +using namespace rtl; +using namespace com::sun::star::uno; +using namespace com::sun::star::lang; +using namespace com::sun::star::xforms; +using namespace com::sun::star::xml::xpath; +using namespace com::sun::star::beans; +using com::sun::star::xml::dom::XNode; + +Reference< XInterface > SAL_CALL CLibxml2XFormsExtension::Create( + const Reference< XMultiServiceFactory >& aFactory) +{ + // printf("_create_\n"); + Reference< XInterface > aInstance(static_cast< XXPathExtension* >(new CLibxml2XFormsExtension(/*aFactory*/))); + return aInstance; +} + +OUString SAL_CALL CLibxml2XFormsExtension::getImplementationName_Static() +{ + // printf("_implname_\n"); + return OUString::createFromAscii("com.sun.star.comp.xml.xpath.XFormsExtension"); +} + +Sequence< OUString > SAL_CALL CLibxml2XFormsExtension::getSupportedServiceNames_Static() +{ + // printf("_services_\n"); + Sequence< OUString > aSequence(1); + aSequence[0] = OUString::createFromAscii("com.sun.star.xml.xpath.XPathExtension"); + return aSequence; +} + +Libxml2ExtensionHandle SAL_CALL CLibxml2XFormsExtension::getLibxml2ExtensionHandle() throw (RuntimeException) +{ + Libxml2ExtensionHandle aHandle; + aHandle.functionLookupFunction = (sal_Int64)&xforms_lookupFunc; + aHandle.functionData = (sal_Int64)this; + aHandle.variableLookupFunction = (sal_Int64)0; + aHandle.variableData = (sal_Int64)0; + return aHandle; +} + +void SAL_CALL CLibxml2XFormsExtension::initialize(const Sequence< Any >& aSequence) throw (RuntimeException) +{ + NamedValue aValue; + for (sal_Int32 i = 0; i < aSequence.getLength(); i++) + { + if (! (aSequence[i] >>= aValue)) + throw RuntimeException(); + if (aValue.Name.equalsAscii("Model")) + aValue.Value >>= m_aModel; + else if (aValue.Name.equalsAscii("ContextNode")) + aValue.Value >>= m_aContextNode; + } +} + +Reference< XModel > CLibxml2XFormsExtension::getModel() +{ + return m_aModel; +} + +Reference< XNode > CLibxml2XFormsExtension::getContextNode() +{ + return m_aContextNode; +} + +extern "C" void SAL_CALL createRegistryInfo_CLibxml2XFormsExtension() +{ + static frm::OMultiInstanceAutoRegistration< CLibxml2XFormsExtension > aRegistration; +} |