update ooo310-m15
[ooovba.git] / writerfilter / source / ooxml / OOXMLFastContextHandler.hxx
blob095867105e268e93ed438a399b5e721c658bf09a
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: OOXMLFastContextHandler.hxx,v $
10 * $Revision: 1.7 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef INCLUDED_OOXML_FAST_CONTEXT_HANDLER_HXX
32 #define INCLUDED_OOXML_FAST_CONTEXT_HANDLER_HXX
34 #include <com/sun/star/xml/sax/XFastShapeContextHandler.hpp>
36 #include <string>
37 #include <set>
38 #include "sal/config.h"
39 #include "com/sun/star/uno/XComponentContext.hpp"
40 #include "cppuhelper/implbase1.hxx"
41 #include "com/sun/star/xml/sax/XFastContextHandler.hpp"
42 #include "OOXMLParserState.hxx"
43 #include "OOXMLPropertySetImpl.hxx"
44 #include "OOXMLDocumentImpl.hxx"
45 #include "RefAndPointer.hxx"
46 #include <ooxml/OOXMLFastTokens.hxx>
48 namespace writerfilter {
49 namespace ooxml
51 using namespace ::std;
52 using namespace ::com::sun::star;
53 using namespace ::com::sun::star::xml::sax;
55 typedef boost::shared_ptr<Stream> StreamPointer_t;
57 class OOXMLFastContextHandler:
58 public ::cppu::WeakImplHelper1<
59 xml::sax::XFastContextHandler>
61 public:
62 typedef RefAndPointer<XFastContextHandler, OOXMLFastContextHandler>
63 RefAndPointer_t;
64 typedef boost::shared_ptr<OOXMLFastContextHandler> Pointer_t;
66 enum ResourceEnum_t { UNKNOWN, STREAM, PROPERTIES, TABLE, SHAPE };
68 OOXMLFastContextHandler();
69 explicit OOXMLFastContextHandler
70 (uno::Reference< uno::XComponentContext > const & context);
72 explicit OOXMLFastContextHandler
73 (OOXMLFastContextHandler * pContext);
75 virtual ~OOXMLFastContextHandler();
77 // ::com::sun::star::xml::sax::XFastContextHandler:
78 virtual void SAL_CALL startFastElement
79 (Token_t Element,
80 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
81 throw (uno::RuntimeException, xml::sax::SAXException);
83 virtual void SAL_CALL startUnknownElement
84 (const ::rtl::OUString & Namespace,
85 const ::rtl::OUString & Name,
86 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
87 throw (uno::RuntimeException, xml::sax::SAXException);
89 virtual void SAL_CALL endFastElement(Token_t Element)
90 throw (uno::RuntimeException, xml::sax::SAXException);
92 virtual void SAL_CALL endUnknownElement
93 (const ::rtl::OUString & Namespace, const ::rtl::OUString & Name)
94 throw (uno::RuntimeException, xml::sax::SAXException);
96 virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
97 createFastChildContext
98 (Token_t Element,
99 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
100 throw (uno::RuntimeException, xml::sax::SAXException);
102 virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
103 createUnknownChildContext
104 (const ::rtl::OUString & Namespace,
105 const ::rtl::OUString & Name,
106 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
107 throw (uno::RuntimeException, xml::sax::SAXException);
109 virtual void SAL_CALL characters(const ::rtl::OUString & aChars)
110 throw (uno::RuntimeException, xml::sax::SAXException);
112 static const uno::Sequence< sal_Int8 > & getUnoTunnelId();
113 virtual sal_Int64 SAL_CALL getSomething(const uno::Sequence<sal_Int8> & rId)
114 throw (uno::RuntimeException);
116 // local
118 void setStream(Stream * pStream);
121 Return value of this context(element).
123 @return the value
125 virtual OOXMLValue::Pointer_t getValue() const;
128 Returns a string describing the type of the context.
130 This is the name of the define normally.
132 @return type string
134 virtual string getType() const { return "??"; }
136 virtual ResourceEnum_t getResource() const { return UNKNOWN; }
138 static XMLTag::Pointer_t toPropertiesTag(OOXMLPropertySet::Pointer_t);
139 virtual XMLTag::Pointer_t toTag() const;
140 virtual string toString() const;
142 virtual void attributes
143 (const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
144 throw (uno::RuntimeException, xml::sax::SAXException);
146 virtual void newProperty(const Id & rId, OOXMLValue::Pointer_t pVal);
147 virtual void setPropertySet(OOXMLPropertySet::Pointer_t pPropertySet);
148 virtual OOXMLPropertySet::Pointer_t getPropertySet() const;
150 virtual void setToken(Token_t nToken);
151 virtual Token_t getToken() const;
153 void mark(const Id & rId, OOXMLValue::Pointer_t pVal);
155 void resolveFootnote(const rtl::OUString & rId);
156 void resolveEndnote(const rtl::OUString & rId);
157 void resolveComment(const rtl::OUString & rId);
158 void resolvePicture(const rtl::OUString & rId);
159 void resolveHeader(const sal_Int32 type,
160 const rtl::OUString & rId);
161 void resolveFooter(const sal_Int32 type,
162 const rtl::OUString & rId);
163 void resolveOLE(const rtl::OUString & rId);
165 ::rtl::OUString getTargetForId(const ::rtl::OUString & rId);
167 uno::Reference < xml::sax::XFastContextHandler >
168 createFromStart
169 (Token_t Element,
170 const uno::Reference< xml::sax::XFastAttributeList > & Attribs);
172 void setDocument(OOXMLDocument * pDocument);
173 OOXMLDocument * getDocument();
174 void setXNoteId(const ::rtl::OUString & rId);
175 const rtl::OUString & getXNoteId() const;
176 void setForwardEvents(bool bForwardEvents);
177 bool isForwardEvents() const;
178 virtual void setParent(OOXMLFastContextHandler * pParent);
179 virtual void setId(Id nId);
180 virtual Id getId() const;
182 void setFallback(bool bFallbac);
183 bool isFallback() const;
185 OOXMLParserState::Pointer_t getParserState() const;
187 #ifdef DEBUG_MEMORY
188 virtual void SAL_CALL acquire() throw();
189 virtual void SAL_CALL release() throw();
190 #endif
192 sal_uInt32 getInstanceNumber() const;
194 static void dumpOpenContexts();
196 protected:
197 OOXMLFastContextHandler * mpParent;
198 Id mId;
199 Token_t mnToken;
201 #ifdef DEBUG_CONTEXT_STACK
202 string msTokenString;
203 #endif
205 // the stream to send the stream events to.
206 Stream * mpStream;
208 // the current global parser state
209 OOXMLParserState::Pointer_t mpParserState;
211 // the table depth of this context
212 unsigned int mnTableDepth;
214 virtual void lcl_startFastElement
215 (Token_t Element,
216 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
217 throw (uno::RuntimeException, xml::sax::SAXException);
219 virtual void lcl_endFastElement(Token_t Element)
220 throw (uno::RuntimeException, xml::sax::SAXException);
222 virtual uno::Reference< xml::sax::XFastContextHandler >
223 lcl_createFastChildContext
224 (Token_t Element,
225 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
226 throw (uno::RuntimeException, xml::sax::SAXException);
228 virtual void lcl_characters(const ::rtl::OUString & aChars)
229 throw (uno::RuntimeException, xml::sax::SAXException);
231 void startAction(Token_t Element);
232 virtual void lcl_startAction(Token_t Element);
233 void endAction(Token_t Element);
234 virtual void lcl_endAction(Token_t Element);
237 // Returns string for resource of this context. (debug)
238 string getResourceString() const;
240 virtual OOXMLPropertySet * getPicturePropSet
241 (const ::rtl::OUString & rId);
242 virtual void resolvePropertySetAttrs();
244 void sendTableDepth() const;
245 void setHandle();
247 void startSectionGroup();
248 void setLastParagraphInSection();
249 void endSectionGroup();
250 void startParagraphGroup();
251 void endParagraphGroup();
252 void startCharacterGroup();
253 void endCharacterGroup();
255 void startField();
256 void fieldSeparator();
257 void endField();
258 void ftnednref();
259 void ftnedncont();
260 void ftnednsep();
261 void pgNum();
262 void tab();
263 void cr();
264 void noBreakHyphen();
265 void softHyphen();
266 void handleLastParagraphInSection();
267 void endOfParagraph();
268 void text(const ::rtl::OUString & sText);
269 virtual void propagateCharacterProperties();
270 virtual void propagateCharacterPropertiesAsSet(const Id & rId);
271 virtual bool propagatesProperties() const;
272 void sendPropertiesWithId(const Id & rId);
273 void propagateTableProperties();
274 void clearProps();
276 void sendPropertyToParent();
278 uno::Reference< uno::XComponentContext > getComponentContext();
280 sal_uInt32 mnInstanceNumber;
281 sal_uInt32 mnRefCount;
282 private:
283 void operator =(OOXMLFastContextHandler &); // not defined
285 uno::Reference< uno::XComponentContext > m_xContext;
287 static sal_uInt32 mnInstanceCount;
289 bool mbFallback;
292 class OOXMLFastContextHandlerNoResource : public OOXMLFastContextHandler
294 public:
295 OOXMLFastContextHandlerNoResource(OOXMLFastContextHandler * pContext);
296 virtual ~OOXMLFastContextHandlerNoResource();
299 class OOXMLFastContextHandlerStream : public OOXMLFastContextHandler
301 public:
302 OOXMLFastContextHandlerStream(OOXMLFastContextHandler * pContext);
303 virtual ~OOXMLFastContextHandlerStream();
305 virtual ResourceEnum_t getResource() const { return STREAM; }
307 OOXMLPropertySet::Pointer_t getPropertySetAttrs() const;
309 virtual void newProperty(const Id & rId, OOXMLValue::Pointer_t pVal);
310 virtual void sendProperty(Id nId);
311 virtual OOXMLPropertySet::Pointer_t getPropertySet() const;
313 void handleHyperlink();
315 protected:
316 void setPropertySetAttrs(OOXMLPropertySet::Pointer_t pPropertySetAttrs);
317 virtual void resolvePropertySetAttrs();
318 virtual void lcl_characters(const ::rtl::OUString & aChars)
319 throw (uno::RuntimeException, xml::sax::SAXException);
320 private:
321 mutable OOXMLPropertySet::Pointer_t mpPropertySetAttrs;
324 class OOXMLFastContextHandlerProperties : public OOXMLFastContextHandler
326 public:
327 OOXMLFastContextHandlerProperties(OOXMLFastContextHandler * pContext);
328 virtual ~OOXMLFastContextHandlerProperties();
330 virtual OOXMLValue::Pointer_t getValue() const;
331 virtual ResourceEnum_t getResource() const { return PROPERTIES; }
333 virtual XMLTag::Pointer_t toTag() const;
335 virtual void newProperty(const Id & nId, OOXMLValue::Pointer_t pVal);
337 void handleXNotes();
338 void handleHdrFtr();
339 void handleComment();
340 void handlePicture();
341 void handleBreak();
342 void handleOLE();
344 virtual void setPropertySet(OOXMLPropertySet::Pointer_t pPropertySet);
345 virtual OOXMLPropertySet::Pointer_t getPropertySet() const;
347 protected:
348 /// the properties
349 OOXMLPropertySet::Pointer_t mpPropertySet;
351 virtual void lcl_endFastElement(Token_t Element)
352 throw (uno::RuntimeException, xml::sax::SAXException);
353 virtual void setParent(OOXMLFastContextHandler * pParent);
355 private:
357 bool mbResolve;
360 class OOXMLFastContextHandlerPropertyTable :
361 public OOXMLFastContextHandlerProperties
363 public:
364 OOXMLFastContextHandlerPropertyTable(OOXMLFastContextHandler * pContext);
365 virtual ~OOXMLFastContextHandlerPropertyTable();
367 protected:
368 OOXMLTableImpl mTable;
370 virtual void lcl_endFastElement(Token_t Element)
371 throw (uno::RuntimeException, xml::sax::SAXException);
374 class OOXMLFastContextHandlerBooleanValue :
375 public OOXMLFastContextHandler
377 public:
378 OOXMLFastContextHandlerBooleanValue
379 (OOXMLFastContextHandler * pContext);
380 virtual ~OOXMLFastContextHandlerBooleanValue();
382 protected:
383 bool mbValue;
385 virtual void attributes
386 (const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
387 throw (uno::RuntimeException, xml::sax::SAXException);
388 virtual void lcl_endFastElement(Token_t Element)
389 throw (uno::RuntimeException, xml::sax::SAXException);
391 virtual OOXMLValue::Pointer_t getValue() const;
392 void setValue(const ::rtl::OUString & rString);
395 class OOXMLFastContextHandlerIntegerValue :
396 public OOXMLFastContextHandler
398 public:
399 OOXMLFastContextHandlerIntegerValue
400 (OOXMLFastContextHandler * pContext);
401 virtual ~OOXMLFastContextHandlerIntegerValue();
403 protected:
404 sal_Int32 mnValue;
406 void attributes
407 (const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
408 throw (uno::RuntimeException, xml::sax::SAXException);
409 virtual void lcl_endFastElement(Token_t Element)
410 throw (uno::RuntimeException, xml::sax::SAXException);
412 virtual OOXMLValue::Pointer_t getValue() const;
415 class OOXMLFastContextHandlerStringValue :
416 public OOXMLFastContextHandler
418 public:
419 OOXMLFastContextHandlerStringValue
420 (OOXMLFastContextHandler * pContext);
421 virtual ~OOXMLFastContextHandlerStringValue();
423 protected:
424 ::rtl::OUString msValue;
426 void attributes
427 (const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
428 throw (uno::RuntimeException, xml::sax::SAXException);
429 virtual void lcl_endFastElement(Token_t Element)
430 throw (uno::RuntimeException, xml::sax::SAXException);
432 virtual OOXMLValue::Pointer_t getValue() const;
435 class OOXMLFastContextHandlerHexValue :
436 public OOXMLFastContextHandler
438 public:
439 OOXMLFastContextHandlerHexValue
440 (OOXMLFastContextHandler * pContext);
441 virtual ~OOXMLFastContextHandlerHexValue();
443 protected:
444 sal_Int32 mnValue;
446 void attributes
447 (const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
448 throw (uno::RuntimeException, xml::sax::SAXException);
449 virtual void lcl_endFastElement(Token_t Element)
450 throw (uno::RuntimeException, xml::sax::SAXException);
452 virtual OOXMLValue::Pointer_t getValue() const;
455 class OOXMLFastContextHandlerListValue :
456 public OOXMLFastContextHandler
458 public:
459 OOXMLFastContextHandlerListValue
460 (OOXMLFastContextHandler * pContext);
461 virtual ~OOXMLFastContextHandlerListValue();
463 protected:
464 mutable OOXMLValue::Pointer_t mpValue;
466 virtual void lcl_endFastElement(Token_t Element)
467 throw (uno::RuntimeException, xml::sax::SAXException);
468 virtual OOXMLValue::Pointer_t getValue() const;
471 class OOXMLFastContextHandlerTable : public OOXMLFastContextHandler
473 public:
474 OOXMLFastContextHandlerTable(OOXMLFastContextHandler * pContext);
475 virtual ~OOXMLFastContextHandlerTable();
477 virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
478 createFastChildContext
479 (Token_t Element,
480 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
481 throw (uno::RuntimeException, xml::sax::SAXException);
483 virtual void newPropertySet(OOXMLPropertySet::Pointer_t pPropertySet);
484 protected:
485 OOXMLTableImpl mTable;
487 RefAndPointer_t mCurrentChild;
489 virtual void lcl_endFastElement(Token_t Element)
490 throw (uno::RuntimeException, xml::sax::SAXException);
492 virtual ResourceEnum_t getResource() const { return TABLE; }
494 void addCurrentChild();
497 class OOXMLFastContextHandlerXNote : public OOXMLFastContextHandler
499 public:
500 OOXMLFastContextHandlerXNote(OOXMLFastContextHandler * pContext);
501 virtual ~OOXMLFastContextHandlerXNote();
503 void checkId(const rtl::OUString & rId);
504 private:
505 bool mbForwardEventsSaved;
506 ::rtl::OUString msMyXNoteId;
508 virtual void lcl_startFastElement
509 (Token_t Element,
510 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
511 throw (uno::RuntimeException, xml::sax::SAXException);
513 virtual void lcl_endFastElement(Token_t Element)
514 throw (uno::RuntimeException, xml::sax::SAXException);
516 virtual ResourceEnum_t getResource() const { return STREAM; }
519 class OOXMLFastContextHandlerTextTableCell : public OOXMLFastContextHandler
521 public:
522 OOXMLFastContextHandlerTextTableCell
523 (OOXMLFastContextHandler * pContext);
524 virtual ~OOXMLFastContextHandlerTextTableCell();
526 void startCell();
527 void endCell();
530 class OOXMLFastContextHandlerTextTableRow : public OOXMLFastContextHandler
532 public:
533 OOXMLFastContextHandlerTextTableRow
534 (OOXMLFastContextHandler * pContext);
535 virtual ~OOXMLFastContextHandlerTextTableRow();
537 void startRow();
538 void endRow();
541 class OOXMLFastContextHandlerTextTable : public OOXMLFastContextHandler
543 public:
544 OOXMLFastContextHandlerTextTable
545 (OOXMLFastContextHandler * pContext);
547 virtual ~OOXMLFastContextHandlerTextTable();
549 protected:
550 virtual void lcl_startFastElement
551 (Token_t Element,
552 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
553 throw (uno::RuntimeException, xml::sax::SAXException);
555 virtual void lcl_endFastElement(Token_t Element)
556 throw (uno::RuntimeException, xml::sax::SAXException);
559 class OOXMLFastContextHandlerShape: public OOXMLFastContextHandlerProperties
561 private:
562 bool m_bShapeSent;
564 public:
565 explicit OOXMLFastContextHandlerShape
566 (OOXMLFastContextHandler * pContext);
567 virtual ~OOXMLFastContextHandlerShape();
569 // ::com::sun::star::xml::sax::XFastContextHandler:
570 virtual void SAL_CALL startUnknownElement
571 (const ::rtl::OUString & Namespace,
572 const ::rtl::OUString & Name,
573 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
574 throw (uno::RuntimeException, xml::sax::SAXException);
576 virtual void SAL_CALL endUnknownElement
577 (const ::rtl::OUString & Namespace,
578 const ::rtl::OUString & Name)
579 throw (uno::RuntimeException, xml::sax::SAXException);
581 virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
582 createUnknownChildContext
583 (const ::rtl::OUString & Namespace,
584 const ::rtl::OUString & Name,
585 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
586 throw (uno::RuntimeException, xml::sax::SAXException);
588 virtual void setToken(Token_t nToken);
590 virtual ResourceEnum_t getResource() const { return SHAPE; }
592 void sendShape( Token_t Element );
594 protected:
595 typedef uno::Reference<XFastShapeContextHandler> ShapeContextRef;
596 ShapeContextRef mrShapeContext;
598 virtual void lcl_startFastElement
599 (Token_t Element,
600 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
601 throw (uno::RuntimeException, xml::sax::SAXException);
603 virtual void lcl_endFastElement(Token_t Element)
604 throw (uno::RuntimeException, xml::sax::SAXException);
606 virtual uno::Reference< xml::sax::XFastContextHandler >
607 lcl_createFastChildContext
608 (Token_t Element,
609 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
610 throw (uno::RuntimeException, xml::sax::SAXException);
612 virtual void lcl_characters(const ::rtl::OUString & aChars)
613 throw (uno::RuntimeException, xml::sax::SAXException);
618 OOXMLFastContextHandlerWrapper wraps an OOXMLFastContextHandler.
620 The method calls for the interface
621 ::com::sun::star::xml::sax::XFastContextHandler are forwarded to the wrapped
622 OOXMLFastContextHandler.
624 class OOXMLFastContextHandlerWrapper : public OOXMLFastContextHandler
626 public:
627 explicit OOXMLFastContextHandlerWrapper
628 (OOXMLFastContextHandler * pParent,
629 uno::Reference<XFastContextHandler> xContext);
630 virtual ~OOXMLFastContextHandlerWrapper();
632 // ::com::sun::star::xml::sax::XFastContextHandler:
633 virtual void SAL_CALL startUnknownElement
634 (const ::rtl::OUString & Namespace,
635 const ::rtl::OUString & Name,
636 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
637 throw (uno::RuntimeException, xml::sax::SAXException);
639 virtual void SAL_CALL endUnknownElement
640 (const ::rtl::OUString & Namespace,
641 const ::rtl::OUString & Name)
642 throw (uno::RuntimeException, xml::sax::SAXException);
644 virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
645 createUnknownChildContext
646 (const ::rtl::OUString & Namespace,
647 const ::rtl::OUString & Name,
648 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
649 throw (uno::RuntimeException, xml::sax::SAXException);
651 virtual void attributes
652 (const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
653 throw (uno::RuntimeException, xml::sax::SAXException);
655 virtual ResourceEnum_t getResource() const;
657 void addNamespace(const Id & nId);
658 void addToken( Token_t Element );
660 virtual void newProperty(const Id & rId, OOXMLValue::Pointer_t pVal);
661 virtual void setPropertySet(OOXMLPropertySet::Pointer_t pPropertySet);
662 virtual OOXMLPropertySet::Pointer_t getPropertySet() const;
664 virtual string getType() const;
666 protected:
667 virtual void lcl_startFastElement
668 (Token_t Element,
669 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
670 throw (uno::RuntimeException, xml::sax::SAXException);
672 virtual void lcl_endFastElement(Token_t Element)
673 throw (uno::RuntimeException, xml::sax::SAXException);
675 virtual uno::Reference< xml::sax::XFastContextHandler >
676 lcl_createFastChildContext
677 (Token_t Element,
678 const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
679 throw (uno::RuntimeException, xml::sax::SAXException);
681 virtual void lcl_characters(const ::rtl::OUString & aChars)
682 throw (uno::RuntimeException, xml::sax::SAXException);
684 virtual void setId(Id nId);
685 virtual Id getId() const;
687 virtual void setToken(Token_t nToken);
688 virtual Token_t getToken() const;
690 private:
691 uno::Reference<XFastContextHandler> mxContext;
692 set<Id> mMyNamespaces;
693 set<Token_t> mMyTokens;
694 OOXMLPropertySet::Pointer_t mpPropertySet;
696 OOXMLFastContextHandler * getFastContextHandler() const;
699 #endif // INCLUDED_OOXML_FAST_CONTEXT_HANDLER_HXX