1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir #include <xmlscript/xmlmod_imexp.hxx>
29*cdf0e10cSrcweir 
30*cdf0e10cSrcweir #include <cppuhelper/implbase1.hxx>
31*cdf0e10cSrcweir #include <rtl/ustrbuf.hxx>
32*cdf0e10cSrcweir 
33*cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
34*cdf0e10cSrcweir #include <com/sun/star/container/XNameContainer.hpp>
35*cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp>
36*cdf0e10cSrcweir 
37*cdf0e10cSrcweir #include <com/sun/star/awt/XControlModel.hpp>
38*cdf0e10cSrcweir #include <com/sun/star/awt/FontDescriptor.hpp>
39*cdf0e10cSrcweir 
40*cdf0e10cSrcweir #include <com/sun/star/xml/input/XRoot.hpp>
41*cdf0e10cSrcweir 
42*cdf0e10cSrcweir #include <vector>
43*cdf0e10cSrcweir 
44*cdf0e10cSrcweir #define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) )
45*cdf0e10cSrcweir 
46*cdf0e10cSrcweir 
47*cdf0e10cSrcweir using namespace ::rtl;
48*cdf0e10cSrcweir using namespace ::std;
49*cdf0e10cSrcweir using namespace ::com::sun::star;
50*cdf0e10cSrcweir using namespace ::com::sun::star::uno;
51*cdf0e10cSrcweir 
52*cdf0e10cSrcweir namespace xmlscript
53*cdf0e10cSrcweir {
54*cdf0e10cSrcweir 
55*cdf0e10cSrcweir //==================================================================================================
56*cdf0e10cSrcweir // Script module import
57*cdf0e10cSrcweir 
58*cdf0e10cSrcweir //==================================================================================================
59*cdf0e10cSrcweir struct ModuleImport
60*cdf0e10cSrcweir     : public ::cppu::WeakImplHelper1< xml::input::XRoot >
61*cdf0e10cSrcweir {
62*cdf0e10cSrcweir     friend class ModuleElement;
63*cdf0e10cSrcweir 
64*cdf0e10cSrcweir     ModuleDescriptor& mrModuleDesc;
65*cdf0e10cSrcweir 
66*cdf0e10cSrcweir     sal_Int32 XMLNS_SCRIPT_UID;
67*cdf0e10cSrcweir     sal_Int32 XMLNS_LIBRARY_UID;
68*cdf0e10cSrcweir     sal_Int32 XMLNS_XLINK_UID;
69*cdf0e10cSrcweir 
70*cdf0e10cSrcweir public:
71*cdf0e10cSrcweir     inline ModuleImport( ModuleDescriptor& rModuleDesc )
72*cdf0e10cSrcweir         SAL_THROW( () )
73*cdf0e10cSrcweir         : mrModuleDesc( rModuleDesc ) {}
74*cdf0e10cSrcweir     virtual ~ModuleImport()
75*cdf0e10cSrcweir         SAL_THROW( () );
76*cdf0e10cSrcweir 
77*cdf0e10cSrcweir     // XRoot
78*cdf0e10cSrcweir     virtual void SAL_CALL startDocument(
79*cdf0e10cSrcweir         Reference< xml::input::XNamespaceMapping > const & xNamespaceMapping )
80*cdf0e10cSrcweir         throw (xml::sax::SAXException, RuntimeException);
81*cdf0e10cSrcweir     virtual void SAL_CALL endDocument()
82*cdf0e10cSrcweir         throw (xml::sax::SAXException, RuntimeException);
83*cdf0e10cSrcweir     virtual void SAL_CALL processingInstruction(
84*cdf0e10cSrcweir         OUString const & rTarget, OUString const & rData )
85*cdf0e10cSrcweir         throw (xml::sax::SAXException, RuntimeException);
86*cdf0e10cSrcweir     virtual void SAL_CALL setDocumentLocator(
87*cdf0e10cSrcweir         Reference< xml::sax::XLocator > const & xLocator )
88*cdf0e10cSrcweir         throw (xml::sax::SAXException, RuntimeException);
89*cdf0e10cSrcweir     virtual Reference< xml::input::XElement > SAL_CALL startRootElement(
90*cdf0e10cSrcweir         sal_Int32 nUid, OUString const & rLocalName,
91*cdf0e10cSrcweir         Reference< xml::input::XAttributes > const & xAttributes )
92*cdf0e10cSrcweir         throw (xml::sax::SAXException, RuntimeException);
93*cdf0e10cSrcweir };
94*cdf0e10cSrcweir 
95*cdf0e10cSrcweir //==================================================================================================
96*cdf0e10cSrcweir class ModuleElement
97*cdf0e10cSrcweir     : public ::cppu::WeakImplHelper1< xml::input::XElement >
98*cdf0e10cSrcweir {
99*cdf0e10cSrcweir protected:
100*cdf0e10cSrcweir     ModuleImport * _pImport;
101*cdf0e10cSrcweir     ModuleElement * _pParent;
102*cdf0e10cSrcweir 
103*cdf0e10cSrcweir     OUString _aLocalName;
104*cdf0e10cSrcweir     Reference< xml::input::XAttributes > _xAttributes;
105*cdf0e10cSrcweir     ::rtl::OUStringBuffer _StrBuffer;
106*cdf0e10cSrcweir 
107*cdf0e10cSrcweir public:
108*cdf0e10cSrcweir     ModuleElement(
109*cdf0e10cSrcweir         OUString const & rLocalName,
110*cdf0e10cSrcweir         Reference< xml::input::XAttributes > const & xAttributes,
111*cdf0e10cSrcweir         ModuleElement * pParent, ModuleImport * pImport )
112*cdf0e10cSrcweir         SAL_THROW( () );
113*cdf0e10cSrcweir     virtual ~ModuleElement()
114*cdf0e10cSrcweir         SAL_THROW( () );
115*cdf0e10cSrcweir 
116*cdf0e10cSrcweir     // XElement
117*cdf0e10cSrcweir     virtual Reference< xml::input::XElement > SAL_CALL getParent()
118*cdf0e10cSrcweir         throw (RuntimeException);
119*cdf0e10cSrcweir     virtual OUString SAL_CALL getLocalName()
120*cdf0e10cSrcweir         throw (RuntimeException);
121*cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getUid()
122*cdf0e10cSrcweir         throw (RuntimeException);
123*cdf0e10cSrcweir     virtual Reference< xml::input::XAttributes > SAL_CALL getAttributes()
124*cdf0e10cSrcweir         throw (RuntimeException);
125*cdf0e10cSrcweir     virtual void SAL_CALL ignorableWhitespace(
126*cdf0e10cSrcweir         OUString const & rWhitespaces )
127*cdf0e10cSrcweir         throw (xml::sax::SAXException, RuntimeException);
128*cdf0e10cSrcweir     virtual void SAL_CALL characters( OUString const & rChars )
129*cdf0e10cSrcweir         throw (xml::sax::SAXException, RuntimeException);
130*cdf0e10cSrcweir     virtual void SAL_CALL processingInstruction(
131*cdf0e10cSrcweir         OUString const & rTarget, OUString const & rData )
132*cdf0e10cSrcweir         throw (xml::sax::SAXException, RuntimeException);
133*cdf0e10cSrcweir     virtual void SAL_CALL endElement()
134*cdf0e10cSrcweir         throw (xml::sax::SAXException, RuntimeException);
135*cdf0e10cSrcweir     virtual Reference< xml::input::XElement > SAL_CALL startChildElement(
136*cdf0e10cSrcweir         sal_Int32 nUid, OUString const & rLocalName,
137*cdf0e10cSrcweir         Reference< xml::input::XAttributes > const & xAttributes )
138*cdf0e10cSrcweir         throw (xml::sax::SAXException, RuntimeException);
139*cdf0e10cSrcweir };
140*cdf0e10cSrcweir 
141*cdf0e10cSrcweir //==================================================================================================
142*cdf0e10cSrcweir 
143*cdf0e10cSrcweir }
144