summaryrefslogtreecommitdiff
path: root/include/udm/xml/xmlitem.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/udm/xml/xmlitem.hxx')
-rw-r--r--include/udm/xml/xmlitem.hxx339
1 files changed, 0 insertions, 339 deletions
diff --git a/include/udm/xml/xmlitem.hxx b/include/udm/xml/xmlitem.hxx
deleted file mode 100644
index eab5798feca0..000000000000
--- a/include/udm/xml/xmlitem.hxx
+++ /dev/null
@@ -1,339 +0,0 @@
-/* -*- 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 CSI_XML_XMLITEM_HXX
-#define CSI_XML_XMLITEM_HXX
-
-// USED SERVICES
- // BASE CLASSES
- // COMPONENTS
-#include <cosv/tpl/swelist.hxx>
-#include <cosv/tpl/dyn.hxx>
- // PARAMETERS
-
-namespace csv
-{
- class bostream;
-}
-
-
-namespace csi
-{
-namespace xml
-{
-
-
-/* Basics:
- Item, Attribute, Element, TextContext
-*/
-
-class Item
-{
- public:
- virtual ~Item() {}
- void WriteOut(
- csv::bostream & io_aFile ) const;
- private:
- virtual void do_WriteOut(
- csv::bostream & io_aFile ) const = 0;
-};
-
-typedef csv::SweList_dyn< Item > ItemList;
-
-class Attribute
-{
- public:
- virtual ~Attribute() {}
-
- void WriteOut(
- csv::bostream & io_aFile ) const;
-
- const ::csv::String& Name() const;
- const ::csv::String& Value() const;
-
- private:
- virtual const ::csv::String &
- inq_Name() const = 0;
- virtual const ::csv::String &
- inq_Value() const = 0;
-};
-
-typedef csv::SweList_dyn< Attribute > AttrList;
-
-
-class Element : public Item
-{
- public:
- Element & operator<<( /// For multiple content items.
- DYN Item * let_dpItem );
- Element & operator<<( /// For multiple content items.
- const ::csv::String& let_drText );
- Element & operator<<( /// For multiple content items.
- const char * let_dpText );
- Element & operator<<(
- DYN Attribute * let_dpAttr );
-
- Element & operator>>( /// For multiple content items. @return the child Element.
- DYN Element & let_drElement );
-
-
- Item * SetContent( /// For only one content item.
- DYN Item * let_dpItem ); /// Replaces previous content. May be 0, then all content is deleted.
- private:
- // Interface Item:
- virtual void do_WriteOut(
- csv::bostream & io_aFile ) const;
- // Local
- virtual void op_streamout(
- DYN Item * let_dpItem ) = 0;
- virtual void op_streamout(
- DYN Attribute * let_dpAttr ) = 0;
-
- virtual void do_SetContent(
- DYN Item * let_dpItem ) = 0;
- // Helpers
- virtual const ::csv::String &
- inq_TagName() const = 0;
- virtual const Item *
- inq_Content() const = 0;
- virtual const AttrList *
- inq_Attrs() const = 0;
-
- virtual bool FinishEmptyTag_XmlStyle() const; /// Defaulted to: true
-
- virtual bool LineBreakAfterBeginTag() const; /// Defaulted to: false
- virtual bool LineBreakAfterEndTag() const; /// Defaulted to: true, if LineBreakAfterBeginTag()
-};
-
-class TextContent : public Item
-{
-};
-
-
-/* Implementation simplifiers:
- EmptyElement, PureElement, SglTag
-*/
-
-class EmptyElement : public Element
-{
- private:
- // Interface Element:
- virtual void op_streamout( /// does nothing
- DYN Item * let_dpItem );
- virtual void op_streamout(
- DYN Attribute * let_dpAttr );
- virtual void do_SetContent( /// does nothing
- DYN Item * let_dpItem );
- virtual const Item *
- inq_Content() const; /// @return 0
- virtual const AttrList *
- inq_Attrs() const;
-
- // Local
- virtual AttrList & inq_RefAttrs() = 0;
-};
-
-class PureElement : public Element
-{
- private:
- // Interface Element:
- virtual void op_streamout(
- DYN Item * let_dpItem );
- virtual void op_streamout( /// does nothing
- DYN Attribute * let_dpAttr );
- virtual void do_SetContent(
- DYN Item * let_dpItem );
- virtual const Item *
- inq_Content() const;
- virtual const AttrList *
- inq_Attrs() const; /// @return 0
- // Local
- virtual Dyn< Item > &
- inq_RefContent() = 0;
-};
-
-class SglTag : public Element
-{
- private:
- // Interface Element:
- virtual void op_streamout( /// does nothing
- DYN Item * let_dpItem );
- virtual void op_streamout( /// does nothing
- DYN Attribute * let_dpAttr );
- virtual void do_SetContent( /// does nothing
- DYN Item * let_dpItem );
- virtual const Item *
- inq_Content() const; /// @return 0
- virtual const AttrList *
- inq_Attrs() const; /// @return 0
-};
-
-
-
-/* Standard Element implementations, if there are not any
- specialized ones.
-*/
-
-class AnElement : public Element
-{
- public:
- AnElement(
- const char * i_sTagName );
- ~AnElement();
- private:
- // Interface Element
- virtual void op_streamout(
- DYN Item * let_dpItem );
- virtual void op_streamout(
- DYN Attribute * let_dpAttr );
- virtual void do_SetContent(
- DYN Item * let_dpItem );
- virtual const ::csv::String &
- inq_TagName() const;
- virtual const Item *
- inq_Content() const;
- virtual const AttrList *
- inq_Attrs() const;
- // DATA
- ::csv::String sTagName;
- Dyn< Item > pContent;
- AttrList aAttrs;
-};
-
-class APureElement : public PureElement
-{
- public:
- APureElement(
- const char * i_sTagName );
- ~APureElement();
- private:
- // Interface Element:
- virtual const ::csv::String &
- inq_TagName() const;
- // Interface PureElement:
- virtual Dyn< Item > &
- inq_RefContent();
- // DATA
- ::csv::String sTagName;
- Dyn< Item > pContent;
-};
-
-/* Standard Attribute implementation
-*/
-class AnAttribute : public Attribute
-{
- public:
- AnAttribute(
- const ::csv::String & i_sName,
- const ::csv::String & i_sValue );
- AnAttribute(
- const char * i_sName,
- const char * i_sValue );
- ~AnAttribute();
- private:
- // Interface Attribute:
- virtual const ::csv::String &
- inq_Name() const;
- virtual const ::csv::String &
- inq_Value() const;
- // DATA
- ::csv::String sName;
- ::csv::String sValue;
-};
-
-
-
-/* Implementations of TextContent:
-
- Text ( reserved characters will be replaced and appear unchanged )
- XmlCode ( reserved characters stay and are interpreted
- by the XML-viewer )
-*/
-class Text : public TextContent
-{
- public:
- Text(
- const ::csv::String & i_sText );
- Text(
- const char * i_sText );
- ~Text();
- private:
- virtual void do_WriteOut(
- csv::bostream & io_aFile ) const;
- // DATA
- ::csv::String sText;
-};
-
-
-class XmlCode : public TextContent
-{
- public:
- XmlCode(
- const ::csv::String & i_sText );
- XmlCode(
- const char * i_sText );
- ~XmlCode();
- private:
- virtual void do_WriteOut(
- csv::bostream & io_aFile ) const;
- // DATA
- ::csv::String sText;
-};
-
-
-
-// IMPLEMENTATION
-
-inline void
-Item::WriteOut( csv::bostream & io_aFile ) const
- { do_WriteOut(io_aFile); }
-
-inline const ::csv::String &
-Attribute::Name() const
- { return inq_Name(); }
-inline const ::csv::String &
-Attribute::Value() const
- { return inq_Value(); }
-
-inline Element &
-Element::operator<<( DYN Item * let_dpItem )
- { op_streamout(let_dpItem); return *this; }
-inline Element &
-Element::operator<<( const ::csv::String & let_drText )
- { op_streamout( new Text(let_drText) ); return *this; }
-inline Element &
-Element::operator<<( const char * let_drText )
- { op_streamout( new Text(let_drText) ); return *this; }
-inline Element &
-Element::operator<<( DYN Attribute * let_dpAttr )
- { op_streamout(let_dpAttr); return *this; }
-inline Element &
-Element::operator>>( DYN Element & let_drElement )
- { op_streamout(&let_drElement); return let_drElement; }
-inline Item *
-Element::SetContent( DYN Item * let_dpItem )
- { do_SetContent(let_dpItem); return let_dpItem; }
-
-
-} // namespace xml
-} // namespace csi
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */