[Libreoffice-commits] .: binfilter/bf_xmloff

Stephan Bergmann sbergmann at kemper.freedesktop.org
Wed Oct 19 02:18:32 PDT 2011


 binfilter/bf_xmloff/source/forms/propertyexport.hxx        |    5 +
 binfilter/bf_xmloff/source/forms/xmloff_propertyexport.cxx |   39 ++++++-------
 2 files changed, 22 insertions(+), 22 deletions(-)

New commits:
commit 7d581bcbce7fdbe4ded9b5dc4e127f25a23ac0e2
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Oct 19 11:18:23 2011 +0200

    Simplified comphelper::OSequenceIterator and its uses.

diff --git a/binfilter/bf_xmloff/source/forms/propertyexport.hxx b/binfilter/bf_xmloff/source/forms/propertyexport.hxx
index eb3519d..d795095 100644
--- a/binfilter/bf_xmloff/source/forms/propertyexport.hxx
+++ b/binfilter/bf_xmloff/source/forms/propertyexport.hxx
@@ -102,8 +102,9 @@ namespace xmloff
         */
         void examinePersistence();
 
-        /**
-        */
+        template< typename T > void exportRemainingPropertiesSequence(
+            com::sun::star::uno::Any const & value);
+
         void exportRemainingProperties();
 
         /** indicates that a property has been handled by a derived class, without using the helper methods of this
diff --git a/binfilter/bf_xmloff/source/forms/xmloff_propertyexport.cxx b/binfilter/bf_xmloff/source/forms/xmloff_propertyexport.cxx
index 9a5a01c..454657a 100644
--- a/binfilter/bf_xmloff/source/forms/xmloff_propertyexport.cxx
+++ b/binfilter/bf_xmloff/source/forms/xmloff_propertyexport.cxx
@@ -167,7 +167,17 @@ namespace xmloff
         examinePersistence();
     }
 
-    //---------------------------------------------------------------------
+    template< typename T > void
+    OPropertyExport::exportRemainingPropertiesSequence(Any const & value) {
+        OSequenceIterator< T > i(value);
+        while (i.hasMoreElements())
+        {
+            SvXMLElementExport aLclValueTag(m_rContext.getGlobalContext(), XML_NAMESPACE_FORM, "property-value", sal_True, sal_False);
+                // (no whitespace inside the tag)
+            m_rContext.getGlobalContext().GetDocHandler()->characters(implConvertAny(i.nextElement()));
+        }
+    }
+
     void OPropertyExport::exportRemainingProperties()
     {
         // the properties tag (will be created if we have at least one no-default property)
@@ -255,45 +265,34 @@ namespace xmloff
                 }
 
                 // the not-that-simple case, we need to iterate through the sequence elements
-                IIterator* pSequenceIterator = NULL;
                 switch (aSimpleType.getTypeClass())
                 {
                     case TypeClass_STRING:
-                        pSequenceIterator = new OSequenceIterator< ::rtl::OUString >(aValue);
+                        exportRemainingPropertiesSequence< ::rtl::OUString >(
+                            aValue);
                         break;
                     case TypeClass_DOUBLE:
-                        pSequenceIterator = new OSequenceIterator< double >(aValue);
+                        exportRemainingPropertiesSequence< double >(aValue);
                         break;
                     case TypeClass_BOOLEAN:
-                        pSequenceIterator = new OSequenceIterator< sal_Bool >(aValue);
+                        exportRemainingPropertiesSequence< sal_Bool >(aValue);
                         break;
                     case TypeClass_BYTE:
-                        pSequenceIterator = new OSequenceIterator< sal_Int8 >(aValue);
+                        exportRemainingPropertiesSequence< sal_Int8 >(aValue);
                         break;
                     case TypeClass_SHORT:
-                        pSequenceIterator = new OSequenceIterator< sal_Int16 >(aValue);
+                        exportRemainingPropertiesSequence< sal_Int16 >(aValue);
                         break;
                     case TypeClass_LONG:
-                        pSequenceIterator = new OSequenceIterator< sal_Int32 >(aValue);
+                        exportRemainingPropertiesSequence< sal_Int32 >(aValue);
                         break;
                     case TypeClass_HYPER:
-                        pSequenceIterator = new OSequenceIterator< sal_Int64 >(aValue);
+                        exportRemainingPropertiesSequence< sal_Int64 >(aValue);
                         break;
                     default:
                         OSL_FAIL("OPropertyExport::exportRemainingProperties: unsupported sequence tyoe !");
                         break;
                 }
-                if (pSequenceIterator)
-                {
-                    ::rtl::OUString sCurrent;
-                    while (pSequenceIterator->hasMoreElements())
-                    {
-                        SvXMLElementExport aLclValueTag(m_rContext.getGlobalContext(), XML_NAMESPACE_FORM, "property-value", sal_True, sal_False);
-                            // (no whitespace inside the tag)
-                        m_rContext.getGlobalContext().GetDocHandler()->characters(implConvertAny(pSequenceIterator->nextElement()));
-                    }
-                }
-                delete pSequenceIterator;
             }
         }
         catch(...)


More information about the Libreoffice-commits mailing list