summaryrefslogtreecommitdiff
path: root/udm/source
diff options
context:
space:
mode:
authorNikolai Pretzell <np@openoffice.org>2002-03-08 13:32:38 +0000
committerNikolai Pretzell <np@openoffice.org>2002-03-08 13:32:38 +0000
commit1710683406e72de5458733231636e8fdb2c2c0bc (patch)
treedf25bf37d37eb1edb00165da07c8529458be562b /udm/source
parent8913e1e75efa377a107fa37d22680ec223cb043c (diff)
Moving Autodoc to OpenOffice.org, module udm: UnifiedDataModel
Diffstat (limited to 'udm/source')
-rw-r--r--udm/source/html/htmlitem.cxx284
-rw-r--r--udm/source/html/makefile.mk91
-rw-r--r--udm/source/inc/precomp.h118
-rw-r--r--udm/source/mkinc/fullcpp.mk91
-rw-r--r--udm/source/unittest/makefile.mk108
-rw-r--r--udm/source/unittest/test.cxx146
-rw-r--r--udm/source/xml/makefile.mk91
-rw-r--r--udm/source/xml/xmlitem.cxx613
8 files changed, 1542 insertions, 0 deletions
diff --git a/udm/source/html/htmlitem.cxx b/udm/source/html/htmlitem.cxx
new file mode 100644
index 000000000000..751eea39cc9b
--- /dev/null
+++ b/udm/source/html/htmlitem.cxx
@@ -0,0 +1,284 @@
+/*************************************************************************
+ *
+ * $RCSfile: htmlitem.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-03-08 14:32:37 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <udm/html/htmlitem.hxx>
+
+// NOT FULLY DECLARED SERVICES
+
+
+namespace csi
+{
+namespace html
+{
+
+using namespace csi::xml;
+
+template <class ELEM>
+inline ELEM &
+PushElem( Element & i_rMain,
+ DYN ELEM * let_dpSub,
+ DYN Item * let_dpItem )
+{
+ i_rMain << let_dpSub;
+ if ( let_dpItem != 0 )
+ *let_dpSub << let_dpItem;
+ return *let_dpSub;
+}
+
+
+bool
+Body::LineBreakAfterBeginTag() const
+{
+ return true;
+}
+
+#ifndef COMPATIBLE_NETSCAPE_47
+bool
+HorizontalLine::LineBreakAfterBeginTag() const
+{
+ return true;
+}
+#endif
+
+
+Image::Image( const csv::String & i_sSrc,
+ const csv::String & i_sWidth,
+ const csv::String & i_sHeight,
+ const csv::String & i_sAlign,
+ const csv::String & i_sBorder )
+ : AnEmptyElement( "img" )
+{
+ *this << new AnAttribute("src",i_sSrc)
+ << new AnAttribute("width",i_sWidth)
+ << new AnAttribute("height",i_sHeight)
+ << new AnAttribute("align",i_sAlign)
+ << new AnAttribute("border",i_sBorder);
+}
+
+bool
+Label::LineBreakAfterEndTag() const
+{
+ return true;
+}
+
+bool
+Paragraph::LineBreakAfterEndTag() const
+{
+ return true;
+}
+
+const char *
+Headline::sTags[6] = { "h1", "h2", "h3", "h4", "h5", "h6" };
+
+bool
+Headline::LineBreakAfterEndTag() const
+{
+ return true;
+}
+
+#ifndef COMPATIBLE_NETSCAPE_47
+bool
+LineBreak::LineBreakAfterBeginTag() const
+{
+ return true;
+}
+#endif
+
+
+bool
+TableCell::LineBreakAfterEndTag() const
+{
+ return true;
+}
+
+
+
+TableCell &
+TableRow::AddCell( DYN Item * let_dpItem )
+{
+ return PushElem( *this, new TableCell, let_dpItem );
+}
+
+bool
+TableRow::LineBreakAfterBeginTag() const
+{
+ return true;
+}
+
+
+Table::Table( const csv::String & i_sBorder,
+ const csv::String & i_sWidth,
+ const csv::String & i_sCellPadding,
+ const csv::String & i_sCellSpacing )
+ : csi::xml::AnElement("table")
+{
+ if ( i_sBorder.length() > 0 )
+ *this << new AnAttribute("border",i_sBorder);
+ if ( i_sBorder.length() > 0 )
+ *this << new AnAttribute("width",i_sWidth);
+ if ( i_sBorder.length() > 0 )
+ *this << new AnAttribute("cellpadding",i_sCellPadding);
+ if ( i_sBorder.length() > 0 )
+ *this << new AnAttribute("cellspacing",i_sCellSpacing);
+}
+
+TableRow &
+Table::AddRow()
+{
+ TableRow * ret = new TableRow;
+ *this << ret;
+ return *ret;
+}
+
+bool
+Table::FinishEmptyTag_XmlStyle() const
+{
+ return false;
+}
+
+bool
+Table::LineBreakAfterBeginTag() const
+{
+ return true;
+}
+
+
+
+bool
+DefListTerm::LineBreakAfterEndTag() const
+{
+ return true;
+}
+
+bool
+DefListDefinition::LineBreakAfterEndTag() const
+{
+ return true;
+}
+
+
+
+
+
+DefListTerm &
+DefList::AddTerm( DYN csi::xml::Item* let_dpItem )
+{
+ return PushElem( *this, new DefListTerm, let_dpItem );
+}
+
+DefListDefinition &
+DefList::AddDefinition( DYN csi::xml::Item* let_dpItem )
+{
+ return PushElem( *this, new DefListDefinition, let_dpItem );
+}
+
+bool
+DefList::LineBreakAfterBeginTag() const
+{
+ return true;
+}
+
+
+
+bool
+ListItem::LineBreakAfterEndTag() const
+{
+ return true;
+}
+
+
+
+
+ListItem &
+NumeratedList::AddItem( DYN csi::xml::Item* let_dpItem )
+{
+ return PushElem( *this, new ListItem, let_dpItem );
+}
+
+bool
+NumeratedList::LineBreakAfterBeginTag() const
+{
+ return true;
+}
+
+
+ListItem &
+SimpleList::AddItem( DYN csi::xml::Item* let_dpItem )
+{
+ return PushElem( *this, new ListItem, let_dpItem );
+}
+
+bool
+SimpleList::LineBreakAfterBeginTag() const
+{
+ return true;
+}
+
+
+
+} // namespace html
+} // namespace csi
+
+
+
+
+
diff --git a/udm/source/html/makefile.mk b/udm/source/html/makefile.mk
new file mode 100644
index 000000000000..01765af93cfd
--- /dev/null
+++ b/udm/source/html/makefile.mk
@@ -0,0 +1,91 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: np $ $Date: 2002-03-08 14:32:37 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (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.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=udm
+TARGET=csi_html
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/htmlitem.obj
+
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/udm/source/inc/precomp.h b/udm/source/inc/precomp.h
new file mode 100644
index 000000000000..85f027abe4bb
--- /dev/null
+++ b/udm/source/inc/precomp.h
@@ -0,0 +1,118 @@
+/*************************************************************************
+ *
+ * $RCSfile: precomp.h,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-03-08 14:32:37 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef __ADC_PRECOMP_H_06071998__
+#define __ADC_PRECOMP_H_06071998__
+
+
+// For en/disabling csv_assertions:
+#ifndef DEBUG
+#define CSV_NO_ASSERTIONS
+#endif
+
+#ifdef NP_LOCALBUILD
+#pragma warning( disable : 4786 )
+#endif
+
+#include <cosv/csv_precomp.h>
+
+#include <vector>
+#include <map>
+
+
+
+// Shortcuts to access csv::-types:
+// using csv::String;
+// using csv::StringVector;
+using csv::StreamStr;
+using csv::ios;
+using csv::ostream;
+using csv::c_str;
+typedef csv::StreamStrLock StreamLock;
+
+
+
+/** @attention
+ Has to be changed to returning csv::Cout(),if
+ 1) iostreams are not used ( #ifdef CSV_NO_IOSTREAM )
+ 2) used for an GUI-application.
+*/
+inline ostream &
+Cout() { return csv::Cout(); }
+
+/** @attention
+ Has to be changed to returning csv::Cerr(),if
+ 1) iostreams are not used ( #ifdef CSV_NO_IOSTREAM )
+ 2) used for an GUI-application.
+*/
+inline ostream &
+Cerr() { return csv::Cerr(); }
+
+
+inline csv::F_FLUSHING_FUNC
+Endl() { return csv::Endl; }
+inline csv::F_FLUSHING_FUNC
+Flush() { return csv::Flush; }
+
+
+
+#endif
+
+
diff --git a/udm/source/mkinc/fullcpp.mk b/udm/source/mkinc/fullcpp.mk
new file mode 100644
index 000000000000..b3e9dabe3db8
--- /dev/null
+++ b/udm/source/mkinc/fullcpp.mk
@@ -0,0 +1,91 @@
+#*************************************************************************
+#
+# $RCSfile: fullcpp.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: np $ $Date: 2002-03-08 14:32:37 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (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.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+
+
+# --- Settings -----------------------------------------------------
+# Has to be included AFTER settings.mk !
+
+
+# Precompiled header:
+
+
+.IF "$(GUI)"=="WNT"
+
+# RTTI
+CFLAGS+= /GR
+
+.IF "$(NP_LOCALBUILD)"!=""
+
+
+# Precompiled Headers
+PCH_NAME= udm
+.IF "$(DEBUG)"==""
+CFLAGS+= -YX"precomp.h" /Fp$(PRJ)$/$(INPATH)$/misc$/$(PCH_NAME).pch
+.ELSE
+CFLAGS+= -YX"precomp.h" /Fp$(PRJ)$/$(INPATH)$/misc$/$(PCH_NAME).pcd -DNP_LOCALBUILD
+.ENDIF
+
+.ENDIF
+
+.ENDIF
+
diff --git a/udm/source/unittest/makefile.mk b/udm/source/unittest/makefile.mk
new file mode 100644
index 000000000000..e51e154a4630
--- /dev/null
+++ b/udm/source/unittest/makefile.mk
@@ -0,0 +1,108 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: np $ $Date: 2002-03-08 14:32:38 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (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.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=cosv
+TARGET=udm_unittest
+TARGETTYPE=CUI
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : static.mk
+
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/test.obj
+
+
+
+
+APP1TARGET= $(TARGET)
+APP1STACK= 1000000
+APP1OBJS= $(OBJ)$/test.obj
+
+APP1STDLIBS= $(STATIC_LIBS) msvcirt.lib cosv.lib
+
+
+APP1LIBS= $(LB)$/$(TARGET).lib
+
+
+APP1DEPN= $(LB)$/$(TARGET).lib $(L)$/cosv.lib
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/udm/source/unittest/test.cxx b/udm/source/unittest/test.cxx
new file mode 100644
index 000000000000..8423d4993657
--- /dev/null
+++ b/udm/source/unittest/test.cxx
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * $RCSfile: test.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-03-08 14:32:38 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <udm/integer_i.hxx>
+#include <udm/string_i.hxx>
+
+using namespace udm;
+
+// TypeSystem aTypeSys;
+
+
+class Function
+{
+ public:
+
+ intt nId;
+};
+
+class Ctor : public Function
+{
+ public:
+
+ csv::String sClassName;
+};
+
+class Method : public Function
+{
+ public:
+
+ csv::String sFunctionName;
+ std::vector< std::pair< intt, String > >
+ aParameters;
+};
+
+
+class PrObj
+{
+ public:
+ intt nId;
+ csv::String sName;
+ std::vector< PrObj* >
+ aMethods;
+ std::vector< PrObj* >
+ aData;
+};
+
+
+
+
+void fx()
+{
+ intt n = 5;
+ Dyn<Integer_i> px = new Integer_i(n);
+ Integer & x = *px;
+
+ csv::String s;
+ Dyn<String_i> ps = new String_i(s);
+ String & xs = *ps;
+
+ xs = "Hallo";
+
+ int dev01 = 2;
+
+ xs = csv::String("Haha");
+
+ dev01 = 2;
+
+ csv::String s2 = xs;
+
+
+ dev01 = 2;
+
+// const char * pc = xs;
+
+
+ intt a = x;
+ x = 15;
+
+ Cout() << a << " " << x << Endl(); // Must be: 5 15
+}
+
+
+
+
diff --git a/udm/source/xml/makefile.mk b/udm/source/xml/makefile.mk
new file mode 100644
index 000000000000..d9dcce6b2c43
--- /dev/null
+++ b/udm/source/xml/makefile.mk
@@ -0,0 +1,91 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: np $ $Date: 2002-03-08 14:32:38 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (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.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=udm
+TARGET=csi_xml
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/xmlitem.obj
+
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/udm/source/xml/xmlitem.cxx b/udm/source/xml/xmlitem.cxx
new file mode 100644
index 000000000000..c9ea5b76fa32
--- /dev/null
+++ b/udm/source/xml/xmlitem.cxx
@@ -0,0 +1,613 @@
+/*************************************************************************
+ *
+ * $RCSfile: xmlitem.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-03-08 14:32:38 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <udm/xml/xmlitem.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/file.hxx>
+
+
+namespace csi
+{
+namespace xml
+{
+
+char cReplacable[256] =
+ {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 49
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, // ", &
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 50 - 99
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, // <, >
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 100 - 149
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 1 // &nbsp;
+ };
+
+
+class MultiItem : public Item
+{
+ public:
+ MultiItem();
+ ~MultiItem();
+
+ void Add(
+ DYN Item * let_dpDatum )
+ { csv_assert( let_dpDatum != 0 );
+ aItems.push_back(let_dpDatum); }
+ void Erase() { aItems.erase_all(); }
+
+ private:
+ virtual void do_WriteOut(
+ csv::bostream & io_aFile ) const;
+ // DATA
+ ItemList aItems;
+};
+
+
+void StreamOut(
+ Dyn< Item > & o_rContent,
+ DYN Item * let_dpItem );
+inline void
+StreamOut( AttrList & o_rAttrs,
+ DYN Attribute * let_dpAttr )
+{
+ csv_assert( let_dpAttr != 0 );
+ o_rAttrs.push_back( let_dpAttr );
+}
+
+
+inline void
+Impl_SetContent( Dyn< Item > & o_rContent,
+ DYN Item * let_dpItem )
+{
+ o_rContent = let_dpItem;
+}
+
+
+//********************* Attribute ****************************//
+
+const csv::String attrValueBegin("=\"");
+const csv::String attrValueEnd("\"");
+
+void
+Attribute::WriteOut( csv::bostream & io_aFile ) const
+{
+ io_aFile.write( Name() );
+ if ( Value().length() > 0 )
+ {
+ io_aFile.write( attrValueBegin );
+ io_aFile.write( Value() );
+ io_aFile.write( attrValueEnd );
+ }
+}
+
+
+
+//************************ Element ****************************//
+
+const csv::String newline("\n");
+const csv::String space(" ");
+const csv::String beginTagBegin("<");
+const csv::String endTagBegin("</");
+const csv::String tagEnd(">");
+const csv::String emptyTagEnd("/>");
+
+void
+Element::do_WriteOut( csv::bostream & io_aFile ) const
+{
+ io_aFile.write( beginTagBegin );
+ io_aFile.write( inq_TagName() );
+
+ const AttrList * pAttrs = inq_Attrs();
+ if ( pAttrs != 0 )
+ {
+ for ( AttrList::iterator it = pAttrs->begin();
+ it != pAttrs->end();
+ ++it )
+ {
+
+ io_aFile.write( space );
+ (*it)->WriteOut( io_aFile );
+ }
+ }
+
+ const Item * pContent = inq_Content();
+ if ( pContent != 0 )
+ io_aFile.write( tagEnd );
+ else
+ {
+ if (FinishEmptyTag_XmlStyle())
+ io_aFile.write( emptyTagEnd );
+ else
+ {
+ io_aFile.write( tagEnd );
+ io_aFile.write( endTagBegin );
+ io_aFile.write( inq_TagName() );
+ io_aFile.write( tagEnd );
+ }
+ }
+ if ( LineBreakAfterBeginTag() )
+ io_aFile.write( newline );
+ if ( pContent == 0 )
+ return;
+
+ pContent->WriteOut( io_aFile );
+ io_aFile.write( endTagBegin );
+ io_aFile.write( inq_TagName() );
+ io_aFile.write( tagEnd );
+ if ( LineBreakAfterEndTag() )
+ io_aFile.write( newline );
+}
+
+bool
+Element::FinishEmptyTag_XmlStyle() const
+{
+ return true;
+}
+
+bool
+Element::LineBreakAfterBeginTag() const
+{
+ return false;
+}
+
+bool
+Element::LineBreakAfterEndTag() const
+{
+ return LineBreakAfterBeginTag();
+}
+
+
+//************************ EmptyElement ****************************//
+
+void
+EmptyElement::op_streamout( DYN Item * )
+{
+ // Does nothing.
+}
+
+void
+EmptyElement::op_streamout( DYN Attribute * let_dpAttr )
+{
+ StreamOut( inq_RefAttrs(), let_dpAttr );
+}
+
+void
+EmptyElement::do_SetContent( DYN Item * )
+{
+ // Does nothing.
+}
+
+const Item *
+EmptyElement::inq_Content() const
+{
+ return 0;
+}
+
+const AttrList *
+EmptyElement::inq_Attrs() const
+{
+ return &inq_RefAttrs();
+}
+
+
+//************************ PureElement ****************************//
+
+void
+PureElement::op_streamout( DYN Item * let_dpItem )
+{
+ StreamOut( inq_RefContent(), let_dpItem );
+}
+
+void
+PureElement::op_streamout( DYN Attribute * )
+{
+ // Does nothing.
+}
+
+void
+PureElement::do_SetContent( DYN Item * let_dpItem )
+{
+ Impl_SetContent( inq_RefContent(), let_dpItem );
+}
+
+const Item *
+PureElement::inq_Content() const
+{
+ return inq_RefContent().Ptr();
+}
+
+const AttrList *
+PureElement::inq_Attrs() const
+{
+ return 0;
+}
+
+
+//*************************** SglTag **************************//
+
+void
+SglTag::op_streamout( DYN Item * )
+{
+ // Does nothing.
+}
+
+void
+SglTag::op_streamout( DYN Attribute * )
+{
+ // Does nothing.
+}
+
+void
+SglTag::do_SetContent( DYN Item *)
+{
+ // Does nothing.
+}
+
+const Item *
+SglTag::inq_Content() const
+{
+ return 0;
+}
+
+const AttrList *
+SglTag::inq_Attrs() const
+{
+ return 0;
+}
+
+
+//*************************** AnElement **************************//
+
+AnElement::AnElement( const csv::String & i_sTagName )
+ : sTagName( i_sTagName )
+ // pContent,
+ // aAttrs
+{
+}
+
+AnElement::~AnElement()
+{
+}
+
+void
+AnElement::op_streamout( DYN Item * let_dpItem )
+{
+ StreamOut( pContent, let_dpItem );
+}
+
+void
+AnElement::op_streamout( DYN Attribute * let_dpAttr )
+{
+ StreamOut( aAttrs, let_dpAttr );
+}
+
+void
+AnElement::do_SetContent( DYN Item * let_dpItem )
+{
+ Impl_SetContent( pContent, let_dpItem );
+}
+
+const csv::String &
+AnElement::inq_TagName() const
+{
+ return sTagName;
+}
+
+const Item *
+AnElement::inq_Content() const
+{
+ return pContent.Ptr();
+}
+
+const AttrList *
+AnElement::inq_Attrs() const
+{
+ return &aAttrs;
+}
+
+
+//*************************** AnEmptyElement **************************//
+
+AnEmptyElement::AnEmptyElement( const csv::String & i_sTagName )
+ : sTagName( i_sTagName )
+ // aAttrs
+{
+}
+
+AnEmptyElement::~AnEmptyElement()
+{
+
+}
+
+const csv::String &
+AnEmptyElement::inq_TagName() const
+{
+ return sTagName;
+}
+
+AttrList &
+AnEmptyElement::inq_RefAttrs()
+{
+ return aAttrs;
+}
+
+
+//*************************** APureElement **************************//
+
+APureElement::APureElement( const csv::String & i_sTagName )
+ : sTagName( i_sTagName )
+ // pContent
+{
+}
+
+APureElement::~APureElement()
+{
+}
+
+const csv::String &
+APureElement::inq_TagName() const
+{
+ return sTagName;
+}
+
+Dyn< Item > &
+APureElement::inq_RefContent()
+{
+ return pContent;
+}
+
+
+
+//*************************** ASglTag **************************//
+
+ASglTag::ASglTag( const csv::String & i_sTagName )
+ : sTagName( i_sTagName )
+{
+}
+
+ASglTag::~ASglTag()
+{
+}
+
+const csv::String &
+ASglTag::inq_TagName() const
+{
+ return sTagName;
+}
+
+
+//*************************** AnAttribute **************************//
+AnAttribute::AnAttribute( const csv::String & i_sName,
+ const csv::String & i_sValue )
+ : sName(i_sName),
+ sValue(i_sValue)
+{
+}
+
+AnAttribute::~AnAttribute()
+{
+}
+
+const csv::String &
+AnAttribute::inq_Name() const
+{
+ return sName;
+}
+
+const csv::String &
+AnAttribute::inq_Value() const
+{
+ return sValue;
+}
+
+
+
+//*************************** Text **************************//
+
+Text::Text( const csv::String & i_sText )
+ : sText(i_sText)
+{
+}
+
+Text::Text( const char * i_sText )
+ : sText(i_sText)
+{
+}
+
+Text::~Text()
+{
+}
+
+void
+Text::do_WriteOut( csv::bostream & io_aFile ) const
+{
+ const char * pStart = sText.c_str();
+ const char * pOut = 0;
+
+ for ( pOut = pStart ; *pOut != '\0'; ++pOut )
+ {
+ if ( cReplacable[*pOut] )
+ {
+ if ( pOut != pStart )
+ {
+ io_aFile.write( pStart, pOut-pStart );
+ }
+
+ switch (UINT8(*pOut))
+ {
+ case '<': io_aFile.write("&lt;"); break;
+ case '>': io_aFile.write("&gt;"); break;
+ case '"': io_aFile.write("&quot;"); break;
+ case '&': io_aFile.write("&amp;"); break;
+ case 255: io_aFile.write("&nbsp;"); break;
+ }
+
+ pStart = pOut+1;
+ } // endif (cReplacable[*pOut])
+ } // end for
+
+ if ( pOut != pStart )
+ {
+ io_aFile.write( pStart, pOut-pStart );
+ }
+}
+
+
+//*************************** XmlCode **************************//
+
+XmlCode::XmlCode( const csv::String & i_sText )
+ : sText(i_sText)
+{
+}
+
+XmlCode::~XmlCode()
+{
+}
+
+void
+XmlCode::do_WriteOut( csv::bostream & io_aFile ) const
+{
+ io_aFile.write(sText);
+}
+
+
+//*************************** MultiItem **************************//
+
+MultiItem::MultiItem()
+{
+}
+
+MultiItem::~MultiItem()
+{
+}
+
+void
+MultiItem::do_WriteOut( csv::bostream & io_aFile ) const
+{
+ ItemList::iterator itEnd = aItems.end();
+
+ for ( ItemList::iterator it = aItems.begin();
+ it != itEnd;
+ ++it )
+ {
+ (*it)->WriteOut( io_aFile );
+ }
+
+}
+
+
+
+//*************************** Helpers **************************//
+
+void
+StreamOut( Dyn< Item > & o_rContent,
+ DYN Item * let_dpItem )
+{
+ MultiItem * pContent = 0;
+ if ( bool(o_rContent) )
+ {
+ pContent = static_cast< MultiItem* >( o_rContent.MutablePtr() );
+ csv_assert( dynamic_cast< MultiItem* >( o_rContent.MutablePtr() ) != 0 );
+ }
+ else
+ {
+ pContent = new MultiItem;
+ o_rContent = pContent;
+ }
+
+ csv_assert( let_dpItem != 0 );
+ pContent->Add( let_dpItem );
+}
+
+
+
+
+} // namespace xml
+} // namespace csi
+
+
+