1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 module com
{ module sun
{ module star
{ module xml
{ module crypto
{ module sax
{
23 * Interface of SAX Event Keeper.
25 * This interface is used to manipulate element marks in a SAX event stream.
27 * There are two kinds of element mark, one is element collector, which is
28 * used to collect a particular element from the SAX event stream; the other
29 * is blocker, which is used to block the SAX event stream.
31 interface XSAXEventKeeper
: com
::sun
::star
::uno
::XInterface
34 * Adds a new element collector on the next element in the SAX event
37 * @return the keeper id of the new element collector
39 long addElementCollector
();
42 * Removes an element collector.
44 * @param id the keeper id of the element collector to be removed
46 void removeElementCollector
([in] long id);
49 * Adds a new blocker on the next element in the SAX event stream.
51 * No SAX event starting from the next element will be forwarded until
52 * this blocker is removed.
54 * @return the keeper id of the new blocker
61 * @param id the keeper id of the blocker to be removed
63 void removeBlocker
([in] long id);
66 * Checks whether the SAX event stream is blocking.
68 * @return <code>true</code> if blocking, <code>false</code> otherwise
73 * Gets the element of an element mark.
75 * @param id the keeper id of the element mark, it can be an element
76 * collector or a blocker
78 com
::sun
::star
::xml
::wrapper
::XXMLElementWrapper getElement
([in] long id);
81 * Sets the element of an element mark.
83 * When an element is replaced outside of this interface, then uses this method
84 * can restore the link between an element mark and its working element.
86 * @param id the keeper id of the element mark to be set
87 * @param aElement the new element for this element mark.
91 [in] com
::sun
::star
::xml
::wrapper
::XXMLElementWrapper aElement
);
94 * Sets the next document handler in the SAX chain.
96 * This handler will receive SAX events forwarded by the SAXEventKeeper.
98 * @param nextHandler the next handler in the SAX chain
99 * @return the old next handler
101 com
::sun
::star
::xml
::sax
::XDocumentHandler setNextHandler
(
102 [in] com
::sun
::star
::xml
::sax
::XDocumentHandler nextHandler
);
105 * Prints information about all buffered elements.
107 * @return a tree-style string including all buffer information
109 string printBufferNodeTree
();
112 * Gets the element which current blocking happens.
114 * This element is the working element of the first blocker in tree order.
116 * @return the current blocking element
118 com
::sun
::star
::xml
::wrapper
::XXMLElementWrapper getCurrentBlockingNode
();
121 } ; } ; } ; } ; } ; } ;
123 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */