LibreOffice Module oox (master)  1
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
oox::core::XmlFilterBase Class Referenceabstract

#include <xmlfilterbase.hxx>

Inheritance diagram for oox::core::XmlFilterBase:
[legend]
Collaboration diagram for oox::core::XmlFilterBase:
[legend]

Public Member Functions

 XmlFilterBase (const css::uno::Reference< css::uno::XComponentContext > &rxContext)
 
virtual ~XmlFilterBase () override
 
virtual const ::oox::drawingml::ThemegetCurrentTheme () const =0
 Has to be implemented by each filter, returns the current theme. More...
 
virtual ::oox::vml::DrawinggetVmlDrawing ()=0
 Has to be implemented by each filter to return the collection of VML shapes. More...
 
virtual ::oox::drawingml::chart::ChartConvertergetChartConverter ()=0
 Has to be implemented by each filter, returns a filter-specific chart converter object, that should be global per imported document. More...
 
virtual void useInternalChartDataTable (bool)
 Helper to switch chart data table - specifically for xlsx imports. More...
 
virtual ::oox::drawingml::table::TableStyleListPtr getTableStyles ()=0
 Has to be implemented by each filter to return the table style list. More...
 
OUString getFragmentPathFromFirstTypeFromOfficeDoc (std::u16string_view rPart)
 
bool importFragment (const rtl::Reference< FragmentHandler > &rxHandler)
 Imports a fragment using the passed fragment handler, which contains the full path to the fragment stream. More...
 
bool importFragment (const rtl::Reference< FragmentHandler > &rxHandler, FastParser &rParser)
 
css::uno::Reference< css::xml::dom::XDocument > importFragment (const OUString &rFragmentPath)
 Imports a fragment into an xml::dom::XDocument. More...
 
bool importFragment (const ::rtl::Reference< FragmentHandler > &rxHandler, const css::uno::Reference< css::xml::sax::XFastSAXSerializable > &rxSerializer)
 Imports a fragment from an xml::dom::XDocument using the passed fragment handler. More...
 
RelationsRef importRelations (const OUString &rFragmentPath)
 Imports the relations fragment associated with the specified fragment. More...
 
OUString addRelation (const OUString &rType, std::u16string_view rTarget)
 Adds new relation. More...
 
OUString addRelation (const css::uno::Reference< css::io::XOutputStream > &rOutputStream, const OUString &rType, std::u16string_view rTarget, bool bExternal=false)
 Adds new relation to part's relations. More...
 
TextFieldStackgetTextFieldStack () const
 Returns a stack of used textfields, used by the pptx importer to replace links to slidepages with the real page name. More...
 
css::uno::Reference< css::io::XOutputStream > openFragmentStream (const OUString &rStreamName, const OUString &rMediaType)
 Opens and returns the specified output stream from the base storage with specified media type. More...
 
::sax_fastparser::FSHelperPtr openFragmentStreamWithSerializer (const OUString &rStreamName, const OUString &rMediaType)
 Opens specified output stream from the base storage with specified media type and returns new fast serializer for that stream. More...
 
sal_Int32 GetUniqueId ()
 Returns new unique ID for exported document. More...
 
void exportDocumentProperties (const css::uno::Reference< css::document::XDocumentProperties > &xProperties, bool bSecurityOptOpenReadOnly)
 Write the document properties into into the current OPC package. More...
 
void exportCustomFragments ()
 Write the customXml entries we are preserving (xlsx and pptx only). More...
 
void importDocumentProperties ()
 Read the document properties and also the customXml entries (xlsx and pptx only). More...
 
bool isMSO2007Document () const
 
void setMissingExtDrawing ()
 Signal that an MSO 2007-created SmartArt was found, need to warn the user about it. More...
 
void setDiagramFontHeights (NamedShapePairs *pDiagramFontHeights)
 
NamedShapePairsgetDiagramFontHeights ()
 
void checkDocumentProperties (const css::uno::Reference< css::document::XDocumentProperties > &xDocProps)
 
OUString getNamespaceURL (sal_Int32 nNSID) const
 
- Public Member Functions inherited from oox::core::FilterBase
 FilterBase (const css::uno::Reference< css::uno::XComponentContext > &rxContext)
 
virtual ~FilterBase () override
 
bool isImportFilter () const
 Returns true, if filter is an import filter. More...
 
bool isExportFilter () const
 Returns true, if filter is an export filter. More...
 
OoxmlVersion getVersion () const
 
virtual bool importDocument ()=0
 Derived classes implement import of the entire document. More...
 
virtual bool exportDocument ()=0
 Derived classes implement export of the entire document. More...
 
const css::uno::Reference< css::uno::XComponentContext > & getComponentContext () const
 Returns the component context passed in the filter constructor (always existing). More...
 
const css::uno::Reference< css::frame::XModel > & getModel () const
 Returns the document model (always existing). More...
 
const css::uno::Reference< css::lang::XMultiServiceFactory > & getModelFactory () const
 Returns the service factory provided by the document model (always existing). More...
 
const css::uno::Reference< css::frame::XFrame > & getTargetFrame () const
 Returns the frame that will contain the document model (may be null). More...
 
const css::uno::Reference< css::task::XStatusIndicator > & getStatusIndicator () const
 Returns the status indicator (may be null). More...
 
::comphelper::SequenceAsHashMapgetFilterData () const
 Returns the FilterData. More...
 
utl::MediaDescriptorgetMediaDescriptor () const
 Returns the media descriptor. More...
 
const OUString & getFileUrl () const
 Returns the URL of the imported or exported file. More...
 
OUString getAbsoluteUrl (const OUString &rUrl) const
 Returns an absolute URL for the passed relative or absolute URL. More...
 
StorageRef const & getStorage () const
 Returns the base storage of the imported/exported file. More...
 
css::uno::Reference< css::io::XInputStream > openInputStream (const OUString &rStreamName) const
 Opens and returns the specified input stream from the base storage. More...
 
css::uno::Reference< css::io::XOutputStream > openOutputStream (const OUString &rStreamName) const
 Opens and returns the specified output stream from the base storage. More...
 
void commitStorage () const
 Commits changes to base storage (and substorages) More...
 
GraphicHelpergetGraphicHelper () const
 Returns a helper for the handling of graphics and graphic objects. More...
 
ModelObjectHelpergetModelObjectHelper () const
 Returns a helper with containers for various named drawing objects for the imported document. More...
 
ModelObjectHelpergetModelObjectHelperForModel (const css::uno::Reference< css::lang::XMultiServiceFactory > &xFactory) const
 
::oox::ole::OleObjectHelpergetOleObjectHelper () const
 Returns a helper for the handling of OLE objects. More...
 
::oox::ole::VbaProjectgetVbaProject () const
 Returns the VBA project manager. More...
 
bool importBinaryData (StreamDataSequence &orDataSeq, const OUString &rStreamName)
 Imports the raw binary data from the specified stream. More...
 
virtual sal_Bool SAL_CALL supportsService (const OUString &rServiceName) override
 
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames () override
 
virtual void SAL_CALL initialize (const css::uno::Sequence< css::uno::Any > &rArgs) override
 Receives user defined arguments. More...
 
virtual void SAL_CALL setTargetDocument (const css::uno::Reference< css::lang::XComponent > &rxDocument) override
 
virtual void SAL_CALL setSourceDocument (const css::uno::Reference< css::lang::XComponent > &rxDocument) override
 
virtual sal_Bool SAL_CALL filter (const css::uno::Sequence< css::beans::PropertyValue > &rMediaDescSeq) override
 
virtual void SAL_CALL cancel () override
 
bool exportVBA () const
 
bool isExportTemplate () const
 

Static Public Member Functions

static void putPropertiesToDocumentGrabBag (const css::uno::Reference< css::lang::XComponent > &xDstDoc, const comphelper::SequenceAsHashMap &rProperties)
 
static FastParsercreateParser ()
 

Protected Member Functions

virtual css::uno::Reference< css::io::XInputStream > implGetInputStream (utl::MediaDescriptor &rMediaDesc) const override
 
virtual css::uno::Reference< css::io::XStream > implGetOutputStream (utl::MediaDescriptor &rMediaDesc) const override
 
virtual bool implFinalizeExport (utl::MediaDescriptor &rMediaDescriptor) override
 
- Protected Member Functions inherited from oox::core::FilterBase
css::uno::Reference< css::io::XStream > const & getMainDocumentStream () const
 

Protected Attributes

bool mbMissingExtDrawing
 
- Protected Attributes inherited from cppu::BaseMutex
mutable::osl::Mutex m_aMutex
 

Private Member Functions

virtual StorageRef implCreateStorage (const css::uno::Reference< css::io::XInputStream > &rxInStream) const override
 
virtual StorageRef implCreateStorage (const css::uno::Reference< css::io::XStream > &rxOutStream) const override
 
void importCustomFragments (css::uno::Reference< css::embed::XStorage > const &xDocumentStorage)
 

Private Attributes

::std::unique_ptr< XmlFilterBaseImplmxImpl
 
sal_Int32 mnRelId
 
sal_Int32 mnMaxDocId
 
bool mbMSO2007
 

Detailed Description

Definition at line 91 of file xmlfilterbase.hxx.

Constructor & Destructor Documentation

oox::core::XmlFilterBase::XmlFilterBase ( const css::uno::Reference< css::uno::XComponentContext > &  rxContext)
explicit
Exceptions
css::uno::RuntimeException

Definition at line 197 of file xmlfilterbase.cxx.

oox::core::XmlFilterBase::~XmlFilterBase ( )
overridevirtual

Definition at line 207 of file xmlfilterbase.cxx.

References mxImpl.

Member Function Documentation

OUString oox::core::XmlFilterBase::addRelation ( const OUString &  rType,
std::u16string_view  rTarget 
)
OUString oox::core::XmlFilterBase::addRelation ( const css::uno::Reference< css::io::XOutputStream > &  rOutputStream,
const OUString &  rType,
std::u16string_view  rTarget,
bool  bExternal = false 
)

Adds new relation to part's relations.

Parameters
rPartNamePart name the relations are related to. The relations will be stored in <rPartName::path>/_rels/<rPartName::name>.rels.
rTypeRelation type.
rTargetRelation target.
Returns
Added relation Id.
void oox::core::XmlFilterBase::checkDocumentProperties ( const css::uno::Reference< css::document::XDocumentProperties > &  xDocProps)

Definition at line 219 of file xmlfilterbase.cxx.

References comphelper::SequenceAsHashMap::find(), mbMSO2007, and SAL_INFO.

Referenced by importDocumentProperties().

FastParser * oox::core::XmlFilterBase::createParser ( )
static

Definition at line 297 of file xmlfilterbase.cxx.

void oox::core::XmlFilterBase::exportCustomFragments ( )
void oox::core::XmlFilterBase::exportDocumentProperties ( const css::uno::Reference< css::document::XDocumentProperties > &  xProperties,
bool  bSecurityOptOpenReadOnly 
)

Write the document properties into into the current OPC package.

Parameters
xPropertiesThe document properties to export.

Definition at line 943 of file xmlfilterbase.cxx.

References oox::core::writeAppProperties(), oox::core::writeCoreProperties(), and oox::core::writeCustomProperties().

virtual ::oox::drawingml::chart::ChartConverter* oox::core::XmlFilterBase::getChartConverter ( )
pure virtual

Has to be implemented by each filter, returns a filter-specific chart converter object, that should be global per imported document.

Implemented in oox::ppt::PowerPointImport, and oox::shape::ShapeFilterBase.

virtual const ::oox::drawingml::Theme* oox::core::XmlFilterBase::getCurrentTheme ( ) const
pure virtual

Has to be implemented by each filter, returns the current theme.

Implemented in oox::ppt::PowerPointImport, and oox::shape::ShapeFilterBase.

Referenced by oox::drawingml::TextFont::getFontData(), and oox::drawingml::reloadDiagram().

NamedShapePairs * oox::core::XmlFilterBase::getDiagramFontHeights ( )

Definition at line 1033 of file xmlfilterbase.cxx.

References mxImpl.

Referenced by oox::drawingml::Shape::addShape().

OUString oox::core::XmlFilterBase::getFragmentPathFromFirstTypeFromOfficeDoc ( std::u16string_view  rPart)

Definition at line 319 of file xmlfilterbase.cxx.

References importRelations().

Referenced by oox::ppt::PowerPointImport::importDocument().

OUString oox::core::XmlFilterBase::getNamespaceURL ( sal_Int32  nNSID) const
virtual ::oox::drawingml::table::TableStyleListPtr oox::core::XmlFilterBase::getTableStyles ( )
pure virtual

Has to be implemented by each filter to return the table style list.

Implemented in oox::ppt::PowerPointImport, and oox::shape::ShapeFilterBase.

Referenced by oox::drawingml::table::TableProperties::getUsedTableStyle().

TextFieldStack & oox::core::XmlFilterBase::getTextFieldStack ( ) const

Returns a stack of used textfields, used by the pptx importer to replace links to slidepages with the real page name.

Definition at line 504 of file xmlfilterbase.cxx.

References mxImpl.

sal_Int32 oox::core::XmlFilterBase::GetUniqueId ( )
inline

Returns new unique ID for exported document.

Returns
newly created ID.

Definition at line 229 of file xmlfilterbase.hxx.

virtual ::oox::vml::Drawing* oox::core::XmlFilterBase::getVmlDrawing ( )
pure virtual

Has to be implemented by each filter to return the collection of VML shapes.

Implemented in oox::ppt::PowerPointImport, and oox::shape::ShapeFilterBase.

Referenced by oox::drawingml::Shape::finalizeServiceName(), and oox::drawingml::OleObjectGraphicDataContext::~OleObjectGraphicDataContext().

virtual StorageRef oox::core::XmlFilterBase::implCreateStorage ( const css::uno::Reference< css::io::XInputStream > &  rxInStream) const
overrideprivatevirtual

Implements oox::core::FilterBase.

virtual StorageRef oox::core::XmlFilterBase::implCreateStorage ( const css::uno::Reference< css::io::XStream > &  rxOutStream) const
overrideprivatevirtual

Implements oox::core::FilterBase.

bool oox::core::XmlFilterBase::implFinalizeExport ( utl::MediaDescriptor rMediaDescriptor)
overrideprotectedvirtual
Reference< XInputStream > oox::core::XmlFilterBase::implGetInputStream ( utl::MediaDescriptor rMediaDesc) const
overrideprotectedvirtual

Reimplemented from oox::core::FilterBase.

Definition at line 955 of file xmlfilterbase.cxx.

References oox::core::FilterBase::getComponentContext().

Reference< XStream > oox::core::XmlFilterBase::implGetOutputStream ( utl::MediaDescriptor rMediaDesc) const
overrideprotectedvirtual
void oox::core::XmlFilterBase::importCustomFragments ( css::uno::Reference< css::embed::XStorage > const &  xDocumentStorage)
private
void oox::core::XmlFilterBase::importDocumentProperties ( )
bool oox::core::XmlFilterBase::importFragment ( const rtl::Reference< FragmentHandler > &  rxHandler)
bool oox::core::XmlFilterBase::importFragment ( const rtl::Reference< FragmentHandler > &  rxHandler,
FastParser rParser 
)
Reference< XDocument > oox::core::XmlFilterBase::importFragment ( const OUString &  rFragmentPath)

Imports a fragment into an xml::dom::XDocument.

Parameters
rFragmentPathpath to fragment
Returns
a non-empty reference to the XDocument, if the fragment could be imported.

Definition at line 422 of file xmlfilterbase.cxx.

References Exception, oox::core::gaBinSuffix(), oox::core::FilterBase::getComponentContext(), and oox::core::FilterBase::openInputStream().

bool oox::core::XmlFilterBase::importFragment ( const ::rtl::Reference< FragmentHandler > &  rxHandler,
const css::uno::Reference< css::xml::sax::XFastSAXSerializable > &  rxSerializer 
)

Imports a fragment from an xml::dom::XDocument using the passed fragment handler.

Parameters
rxHandlerfragment handler; path to fragment is ignored, input source is the rxSerializer
rxSerializerusually retrieved from a xml::dom::XDocument, will get serialized into rxHandler
Returns
true, if the fragment could be imported.
RelationsRef oox::core::XmlFilterBase::importRelations ( const OUString &  rFragmentPath)

Imports the relations fragment associated with the specified fragment.

Returns
The relations collection of the specified fragment.

Definition at line 477 of file xmlfilterbase.cxx.

References importFragment(), and mxImpl.

Referenced by getFragmentPathFromFirstTypeFromOfficeDoc(), and oox::drawingml::Shape::resolveRelationshipsOfTypeFromOfficeDoc().

bool oox::core::XmlFilterBase::isMSO2007Document ( ) const

Definition at line 1018 of file xmlfilterbase.cxx.

References mbMSO2007.

Referenced by oox::drawingml::chart::ChartSpaceConverter::convertFromModel(), oox::drawingml::chart::DataLabelConverter::convertFromModel(), oox::drawingml::chart::WallFloorConverter::convertFromModel(), oox::drawingml::chart::DataLabelsConverter::convertFromModel(), oox::drawingml::chart::DataPointConverter::convertFromModel(), oox::drawingml::chart::SeriesConverter::createDataSeries(), oox::drawingml::chart::View3DContext::onCreateContext(), oox::drawingml::chart::DataLabelContext::onCreateContext(), oox::drawingml::chart::DataLabelsContext::onCreateContext(), oox::drawingml::chart::AxisContextBase::onCreateContext(), oox::drawingml::chart::WallFloorContext::onCreateContext(), oox::drawingml::chart::AreaTypeGroupContext::onCreateContext(), oox::drawingml::chart::CatAxisContext::onCreateContext(), oox::drawingml::chart::BarTypeGroupContext::onCreateContext(), oox::drawingml::chart::PictureOptionsContext::onCreateContext(), oox::drawingml::chart::DateAxisContext::onCreateContext(), oox::drawingml::chart::BubbleTypeGroupContext::onCreateContext(), oox::drawingml::chart::PlotAreaContext::onCreateContext(), oox::drawingml::chart::ErrorBarContext::onCreateContext(), oox::drawingml::chart::LineTypeGroupContext::onCreateContext(), oox::drawingml::chart::PieTypeGroupContext::onCreateContext(), oox::drawingml::chart::TrendlineContext::onCreateContext(), oox::drawingml::chart::RadarTypeGroupContext::onCreateContext(), oox::drawingml::chart::DataPointContext::onCreateContext(), oox::drawingml::chart::ScatterTypeGroupContext::onCreateContext(), oox::drawingml::chart::SurfaceTypeGroupContext::onCreateContext(), oox::drawingml::chart::AreaSeriesContext::onCreateContext(), oox::drawingml::chart::BarSeriesContext::onCreateContext(), oox::drawingml::chart::BubbleSeriesContext::onCreateContext(), oox::drawingml::chart::LineSeriesContext::onCreateContext(), oox::drawingml::chart::PieSeriesContext::onCreateContext(), oox::drawingml::chart::RadarSeriesContext::onCreateContext(), and oox::drawingml::chart::ScatterSeriesContext::onCreateContext().

Reference< XOutputStream > oox::core::XmlFilterBase::openFragmentStream ( const OUString &  rStreamName,
const OUString &  rMediaType 
)

Opens and returns the specified output stream from the base storage with specified media type.

Parameters
rStreamNameThe name of the embedded storage stream. The name may contain slashes to open streams from embedded substorages. If base stream access has been enabled in the storage, the base stream can be accessed by passing an empty string as stream name.
rMediaTypeThe media type string, used in [Content_Types].xml stream in base storage.
Returns
The opened output stream.

Definition at line 490 of file xmlfilterbase.cxx.

References oox::core::FilterBase::openOutputStream(), and oox::PropertySet::setProperty().

Referenced by exportCustomFragments(), openFragmentStreamWithSerializer(), oox::drawingml::DrawingML::WriteDiagram(), oox::drawingml::DrawingML::writeDiagramRels(), oox::drawingml::DrawingML::WriteImage(), oox::drawingml::DrawingML::WriteMediaNonVisualProperties(), oox::drawingml::ShapeExport::WriteOLE2Shape(), and oox::drawingml::DrawingML::WriteWdpPicture().

FSHelperPtr oox::core::XmlFilterBase::openFragmentStreamWithSerializer ( const OUString &  rStreamName,
const OUString &  rMediaType 
)

Opens specified output stream from the base storage with specified media type and returns new fast serializer for that stream.

Parameters
rStreamNameThe name of the embedded storage stream. The name may contain slashes to open streams from embedded substorages. If base stream access has been enabled in the storage, the base stream can be accessed by passing an empty string as stream name.
rMediaTypeThe media type string, used in [Content_Types].xml stream in base storage.
Returns
newly created serializer helper.

Definition at line 498 of file xmlfilterbase.cxx.

References openFragmentStream().

Referenced by oox::drawingml::DrawingML::CreateOutputStream(), oox::core::writeAppProperties(), oox::core::writeCoreProperties(), and oox::core::writeCustomProperties().

void oox::core::XmlFilterBase::putPropertiesToDocumentGrabBag ( const css::uno::Reference< css::lang::XComponent > &  xDstDoc,
const comphelper::SequenceAsHashMap rProperties 
)
static

Definition at line 245 of file xmlfilterbase.cxx.

References SAL_WARN, u, and comphelper::SequenceAsHashMap::update().

Referenced by importCustomFragments().

void oox::core::XmlFilterBase::setDiagramFontHeights ( NamedShapePairs pDiagramFontHeights)

Definition at line 1028 of file xmlfilterbase.cxx.

References mxImpl.

Referenced by oox::ppt::PPTShape::addShape().

void oox::core::XmlFilterBase::setMissingExtDrawing ( )

Signal that an MSO 2007-created SmartArt was found, need to warn the user about it.

Definition at line 1023 of file xmlfilterbase.cxx.

References mbMissingExtDrawing.

Referenced by oox::drawingml::DiagramGraphicDataContext::onCreateContext().

virtual void oox::core::XmlFilterBase::useInternalChartDataTable ( bool  )
inlinevirtual

Helper to switch chart data table - specifically for xlsx imports.

Definition at line 111 of file xmlfilterbase.hxx.

Member Data Documentation

bool oox::core::XmlFilterBase::mbMissingExtDrawing
protected
bool oox::core::XmlFilterBase::mbMSO2007
private

Definition at line 283 of file xmlfilterbase.hxx.

Referenced by checkDocumentProperties(), and isMSO2007Document().

sal_Int32 oox::core::XmlFilterBase::mnMaxDocId
private

Definition at line 282 of file xmlfilterbase.hxx.

sal_Int32 oox::core::XmlFilterBase::mnRelId
private

Definition at line 281 of file xmlfilterbase.hxx.

Referenced by addRelation().

::std::unique_ptr< XmlFilterBaseImpl > oox::core::XmlFilterBase::mxImpl
private

The documentation for this class was generated from the following files: