1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #include "oox/core/fragmenthandler.hxx"
29 
30 #include "oox/core/xmlfilterbase.hxx"
31 
32 namespace oox {
33 namespace core {
34 
35 // ============================================================================
36 
37 using namespace ::com::sun::star::io;
38 using namespace ::com::sun::star::uno;
39 using namespace ::com::sun::star::xml::sax;
40 
41 using ::rtl::OUString;
42 
43 // ============================================================================
44 
45 FragmentBaseData::FragmentBaseData( XmlFilterBase& rFilter, const OUString& rFragmentPath, RelationsRef xRelations ) :
46     mrFilter( rFilter ),
47     maFragmentPath( rFragmentPath ),
48     mxRelations( xRelations )
49 {
50 }
51 
52 // ============================================================================
53 
54 FragmentHandler::FragmentHandler( XmlFilterBase& rFilter, const OUString& rFragmentPath ) :
55     FragmentHandler_BASE( FragmentBaseDataRef( new FragmentBaseData( rFilter, rFragmentPath, rFilter.importRelations( rFragmentPath ) ) ) )
56 {
57 }
58 
59 FragmentHandler::FragmentHandler( XmlFilterBase& rFilter, const OUString& rFragmentPath, RelationsRef xRelations ) :
60     FragmentHandler_BASE( FragmentBaseDataRef( new FragmentBaseData( rFilter, rFragmentPath, xRelations ) ) )
61 {
62 }
63 
64 FragmentHandler::~FragmentHandler()
65 {
66 }
67 
68 // com.sun.star.xml.sax.XFastDocumentHandler interface ------------------------
69 
70 void FragmentHandler::startDocument() throw( SAXException, RuntimeException )
71 {
72 }
73 
74 void FragmentHandler::endDocument() throw( SAXException, RuntimeException )
75 {
76 }
77 
78 void FragmentHandler::setDocumentLocator( const Reference< XLocator >& rxLocator ) throw( SAXException, RuntimeException )
79 {
80     implSetLocator( rxLocator );
81 }
82 
83 // com.sun.star.xml.sax.XFastContextHandler interface -------------------------
84 
85 void FragmentHandler::startFastElement( sal_Int32, const Reference< XFastAttributeList >& ) throw( SAXException, RuntimeException )
86 {
87 }
88 
89 void FragmentHandler::startUnknownElement( const OUString&, const OUString&, const Reference< XFastAttributeList >& ) throw( SAXException, RuntimeException )
90 {
91 }
92 
93 void FragmentHandler::endFastElement( sal_Int32 ) throw( SAXException, RuntimeException )
94 {
95 }
96 
97 void FragmentHandler::endUnknownElement( const OUString&, const OUString& ) throw( SAXException, RuntimeException )
98 {
99 }
100 
101 Reference< XFastContextHandler > FragmentHandler::createFastChildContext( sal_Int32, const Reference< XFastAttributeList >& ) throw( SAXException, RuntimeException )
102 {
103     return 0;
104 }
105 
106 Reference< XFastContextHandler > FragmentHandler::createUnknownChildContext( const OUString&, const OUString&, const Reference< XFastAttributeList >& ) throw( SAXException, RuntimeException )
107 {
108     return 0;
109 }
110 
111 void FragmentHandler::characters( const OUString& ) throw( SAXException, RuntimeException )
112 {
113 }
114 
115 void FragmentHandler::ignorableWhitespace( const OUString& ) throw( SAXException, RuntimeException )
116 {
117 }
118 
119 void FragmentHandler::processingInstruction( const OUString&, const OUString& ) throw( SAXException, RuntimeException )
120 {
121 }
122 
123 // XML stream handling --------------------------------------------------------
124 
125 Reference< XInputStream > FragmentHandler::openFragmentStream() const
126 {
127     return getFilter().openInputStream( getFragmentPath() );
128 }
129 
130 // binary records -------------------------------------------------------------
131 
132 const RecordInfo* FragmentHandler::getRecordInfos() const
133 {
134     // default: no support for binary records
135     return 0;
136 }
137 
138 // ============================================================================
139 
140 } // namespace core
141 } // namespace oox
142