22 #include <string_view>
25 #include <com/sun/star/document/XImporter.hpp>
26 #include <com/sun/star/uno/XComponentContext.hpp>
27 #include <com/sun/star/util/XModifiable2.hpp>
50 css::uno::Reference< css::xml::sax::XFastDocumentHandler > mxFastHandler;
54 XMLEmbeddedObjectImportContext_Impl(
SvXMLImport& rImport,
55 const css::uno::Reference< css::xml::sax::XFastDocumentHandler >& rHandler );
59 const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList )
override;
63 const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
67 virtual void SAL_CALL
characters(
const OUString& rChars )
override;
72 XMLEmbeddedObjectImportContext_Impl::XMLEmbeddedObjectImportContext_Impl(
74 const Reference< XFastDocumentHandler >& rHandler ) :
76 mxFastHandler( rHandler )
81 css::uno::Reference< css::xml::sax::XFastContextHandler > XMLEmbeddedObjectImportContext_Impl::createFastChildContext(
83 const css::uno::Reference< css::xml::sax::XFastAttributeList >& )
89 void XMLEmbeddedObjectImportContext_Impl::startFastElement(
91 const Reference< XFastAttributeList >& xAttrList )
93 mxFastHandler->startFastElement( nElement, xAttrList );
96 void XMLEmbeddedObjectImportContext_Impl::endFastElement(sal_Int32 nElement)
98 mxFastHandler->endFastElement( nElement );
101 void XMLEmbeddedObjectImportContext_Impl::characters(
const OUString& rChars )
103 mxFastHandler->characters( rChars );
112 Sequence<Any> aArgs( 0 );
116 Reference<XInterface> xFilter =
117 xContext->getServiceManager()->createInstanceWithArgumentsAndContext(
sFilterService, aArgs, xContext);
122 assert(dynamic_cast<SvXMLImport*>(xFilter.get()));
128 Reference < XModifiable2 > xModifiable2( rComp, UNO_QUERY_THROW );
129 xModifiable2->disableSetModified();
135 Reference < XImporter > xImporter(
mxFastHandler, UNO_QUERY );
136 xImporter->setTargetDocument( rComp );
143 const Reference< XFastAttributeList >& xAttrList ) :
159 switch (aIter.getToken())
162 sMime = aIter.toString();
170 static std::u16string_view
const prefixes[] = {
171 u"application/vnd.oasis.openoffice.",
172 u"application/x-vnd.oasis.openoffice.",
173 u
"application/vnd.oasis.opendocument.",
174 u
"application/x-vnd.oasis.opendocument."};
175 for (
auto const &
p: prefixes)
177 if (sMime.startsWith(
p, &sClass))
183 if( !sClass.isEmpty() )
200 switch( entry.eClass )
229 const css::uno::Reference< css::xml::sax::XFastAttributeList >& )
238 const Reference< XFastAttributeList >& rAttrList )
257 Reference < XModifiable2 > xModifiable2(
xComp, UNO_QUERY_THROW );
258 xModifiable2->enableSetModified();
259 xModifiable2->setModified(
true );
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList > &AttrList) override
#define XML_IMPORT_FILTER_CALC
virtual void SAL_CALL startFastElement(sal_Int32 Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > &Attribs) override
SvXMLImport & GetImport()
css::uno::Reference< css::xml::sax::XFastDocumentHandler > mxFastHandler
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
compare eToken to the string
FastAttributeList & castToFastAttributeList(const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList)
#define SO3_SIMPRESS_CLASSID
XMLEmbeddedObjectImportContext(SvXMLImport &rImport, sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList)
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override
endFastElement is called before a context will be destructed, but after an elements context has been ...
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
#define XMLOFF_WARN_UNKNOWN(area, rIter)
XMLTokenEnum
The enumeration of all XML tokens.
#define XML_IMPORT_FILTER_IMPRESS
const XMLServiceMapEntry_Impl aServiceMap[]
#define XML_IMPORT_FILTER_DRAW
OUString GetHexName() const
virtual void SAL_CALL startFastElement(sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList) override
virtual void SAL_CALL characters(const OUString &rChars) override
This method is called for all characters that are contained in the current element.
This class deliberately does not support XWeak, to improve performance when loading large documents...
css::uno::Reference< css::lang::XComponent > xComp
#define SAL_WARN_IF(condition, area, stream)
void SetComponent(css::uno::Reference< css::lang::XComponent > const &rComp)
virtual void SAL_CALL endFastElement(sal_Int32 Element) override
endFastElement is called before a context will be destructed, but after an elements context has been ...
Handling of tokens in XML:
virtual css::uno::Reference< XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > &Attribs) override
#define XML_IMPORT_FILTER_WRITER
#define XML_ELEMENT(prefix, name)
#define XML_IMPORT_FILTER_MATH
#define SO3_SWWEB_CLASSID
virtual ~XMLEmbeddedObjectImportContext() override
#define XML_IMPORT_FILTER_CHART
virtual void SAL_CALL characters(const OUString &aChars) override
This method is called for all characters that are contained in the current element.
#define SO3_SDRAW_CLASSID