diff options
Diffstat (limited to 'offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl')
-rw-r--r-- | offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl b/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl new file mode 100644 index 000000000..ef2def3fe --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl @@ -0,0 +1,134 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_xml_crypto_sax_xsaxeventkeeper_idl_ +#define __com_sun_star_xml_crypto_sax_xsaxeventkeeper_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/xml/sax/XDocumentHandler.idl> +#include <com/sun/star/xml/wrapper/XXMLDocumentWrapper.idl> +#include <com/sun/star/xml/wrapper/XXMLElementWrapper.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of SAX Event Keeper. + * <p> + * This interface is used to manipulate element marks in a SAX event stream. + * <p> + * There are two kinds of element mark, one is element collector, which is + * used to collect a particular element from the SAX event stream; the other + * is blocker, which is used to block the SAX event stream. + */ +interface XSAXEventKeeper : com::sun::star::uno::XInterface +{ + /** + * Adds a new element collector on the next element in the SAX event + * stream. + * + * @return the keeper id of the new element collector + */ + long addElementCollector(); + + /** + * Removes an element collector. + * + * @param id the keeper id of the element collector to be removed + */ + void removeElementCollector([in] long id); + + /** + * Adds a new blocker on the next element in the SAX event stream. + * <p> + * No SAX event starting from the next element will be forwarded until + * this blocker is removed. + * + * @return the keeper id of the new blocker + */ + long addBlocker(); + + /** + * Removes a blocker + * + * @param id the keeper id of the blocker to be removed + */ + void removeBlocker([in] long id); + + /** + * Checks whether the SAX event stream is blocking. + * + * @return <code>true</code> if blocking, <code>false</code> otherwise + */ + boolean isBlocking(); + + /** + * Gets the element of an element mark. + * + * @param id the keeper id of the element mark, it can be an element + * collector or a blocker + */ + com::sun::star::xml::wrapper::XXMLElementWrapper getElement([in] long id); + + /** + * Sets the element of an element mark. + * <p> + * When an element is replaced outside of this interface, then uses this method + * can restore the link between an element mark and its working element. + * + * @param id the keeper id of the element mark to be set + * @param aElement the new element for this element mark. + */ + void setElement( + [in] long id, + [in] com::sun::star::xml::wrapper::XXMLElementWrapper aElement); + + /** + * Sets the next document handler in the SAX chain. + * <p> + * This handler will receive SAX events forwarded by the SAXEventKeeper. + * + * @param nextHandler the next handler in the SAX chain + * @return the old next handler + */ + com::sun::star::xml::sax::XDocumentHandler setNextHandler( + [in] com::sun::star::xml::sax::XDocumentHandler nextHandler); + + /** + * Prints information about all buffered elements. + * + * @return a tree-style string including all buffer information + */ + string printBufferNodeTree(); + + /** + * Gets the element which current blocking happens. + * <p> + * This element is the working element of the first blocker in tree order. + * + * @return the current blocking element + */ + com::sun::star::xml::wrapper::XXMLElementWrapper getCurrentBlockingNode(); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |