1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #include "oox/core/fragmenthandler.hxx"
25 
26 #include "oox/core/xmlfilterbase.hxx"
27 
28 namespace oox {
29 namespace core {
30 
31 // ============================================================================
32 
33 using namespace ::com::sun::star::io;
34 using namespace ::com::sun::star::uno;
35 using namespace ::com::sun::star::xml::sax;
36 
37 using ::rtl::OUString;
38 
39 // ============================================================================
40 
FragmentBaseData(XmlFilterBase & rFilter,const OUString & rFragmentPath,RelationsRef xRelations)41 FragmentBaseData::FragmentBaseData( XmlFilterBase& rFilter, const OUString& rFragmentPath, RelationsRef xRelations ) :
42     mrFilter( rFilter ),
43     maFragmentPath( rFragmentPath ),
44     mxRelations( xRelations )
45 {
46 }
47 
48 // ============================================================================
49 
FragmentHandler(XmlFilterBase & rFilter,const OUString & rFragmentPath)50 FragmentHandler::FragmentHandler( XmlFilterBase& rFilter, const OUString& rFragmentPath ) :
51     FragmentHandler_BASE( FragmentBaseDataRef( new FragmentBaseData( rFilter, rFragmentPath, rFilter.importRelations( rFragmentPath ) ) ) )
52 {
53 }
54 
FragmentHandler(XmlFilterBase & rFilter,const OUString & rFragmentPath,RelationsRef xRelations)55 FragmentHandler::FragmentHandler( XmlFilterBase& rFilter, const OUString& rFragmentPath, RelationsRef xRelations ) :
56     FragmentHandler_BASE( FragmentBaseDataRef( new FragmentBaseData( rFilter, rFragmentPath, xRelations ) ) )
57 {
58 }
59 
~FragmentHandler()60 FragmentHandler::~FragmentHandler()
61 {
62 }
63 
64 // com.sun.star.xml.sax.XFastDocumentHandler interface ------------------------
65 
startDocument()66 void FragmentHandler::startDocument() throw( SAXException, RuntimeException )
67 {
68 }
69 
endDocument()70 void FragmentHandler::endDocument() throw( SAXException, RuntimeException )
71 {
72 }
73 
setDocumentLocator(const Reference<XLocator> & rxLocator)74 void FragmentHandler::setDocumentLocator( const Reference< XLocator >& rxLocator ) throw( SAXException, RuntimeException )
75 {
76     implSetLocator( rxLocator );
77 }
78 
79 // com.sun.star.xml.sax.XFastContextHandler interface -------------------------
80 
startFastElement(sal_Int32,const Reference<XFastAttributeList> &)81 void FragmentHandler::startFastElement( sal_Int32, const Reference< XFastAttributeList >& ) throw( SAXException, RuntimeException )
82 {
83 }
84 
startUnknownElement(const OUString &,const OUString &,const Reference<XFastAttributeList> &)85 void FragmentHandler::startUnknownElement( const OUString&, const OUString&, const Reference< XFastAttributeList >& ) throw( SAXException, RuntimeException )
86 {
87 }
88 
endFastElement(sal_Int32)89 void FragmentHandler::endFastElement( sal_Int32 ) throw( SAXException, RuntimeException )
90 {
91 }
92 
endUnknownElement(const OUString &,const OUString &)93 void FragmentHandler::endUnknownElement( const OUString&, const OUString& ) throw( SAXException, RuntimeException )
94 {
95 }
96 
createFastChildContext(sal_Int32,const Reference<XFastAttributeList> &)97 Reference< XFastContextHandler > FragmentHandler::createFastChildContext( sal_Int32, const Reference< XFastAttributeList >& ) throw( SAXException, RuntimeException )
98 {
99     return 0;
100 }
101 
createUnknownChildContext(const OUString &,const OUString &,const Reference<XFastAttributeList> &)102 Reference< XFastContextHandler > FragmentHandler::createUnknownChildContext( const OUString&, const OUString&, const Reference< XFastAttributeList >& ) throw( SAXException, RuntimeException )
103 {
104     return 0;
105 }
106 
characters(const OUString &)107 void FragmentHandler::characters( const OUString& ) throw( SAXException, RuntimeException )
108 {
109 }
110 
ignorableWhitespace(const OUString &)111 void FragmentHandler::ignorableWhitespace( const OUString& ) throw( SAXException, RuntimeException )
112 {
113 }
114 
processingInstruction(const OUString &,const OUString &)115 void FragmentHandler::processingInstruction( const OUString&, const OUString& ) throw( SAXException, RuntimeException )
116 {
117 }
118 
119 // XML stream handling --------------------------------------------------------
120 
openFragmentStream() const121 Reference< XInputStream > FragmentHandler::openFragmentStream() const
122 {
123     return getFilter().openInputStream( getFragmentPath() );
124 }
125 
126 // binary records -------------------------------------------------------------
127 
getRecordInfos() const128 const RecordInfo* FragmentHandler::getRecordInfos() const
129 {
130     // default: no support for binary records
131     return 0;
132 }
133 
134 // ============================================================================
135 
136 } // namespace core
137 } // namespace oox
138