User: ihi     
Date: 2006/10/18 06:07:37

Modified:
   dba/connectivity/source/drivers/mozab/MColumnAlias.hxx

Log:
 INTEGRATION: CWS dba205b (1.2.146); FILE MERGED
 2006/08/09 19:52:36 fs 1.2.146.1: refactored the OColumnAlias class, in 
preparation of fixing #b6248060#

File Changes:

Directory: /dba/connectivity/source/drivers/mozab/
==================================================

File [changed]: MColumnAlias.hxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/mozab/MColumnAlias.hxx?r1=1.2&r2=1.3
Delta lines:  +85 -70
---------------------
--- MColumnAlias.hxx    8 Sep 2005 06:16:17 -0000       1.2
+++ MColumnAlias.hxx    18 Oct 2006 13:07:34 -0000      1.3
@@ -49,8 +49,13 @@
 {
        namespace mozab
        {
+               class OColumnAlias
+               {
+        public:
                typedef enum {
-                       FIRSTNAME = 0,
+                BEGIN = 0,
+
+                           FIRSTNAME = BEGIN,
                        LASTNAME,
                        DISPLAYNAME,
                        NICKNAME,
@@ -87,40 +92,50 @@
                        CUSTOM3,
                        CUSTOM4,
                        NOTES,
+
                        END
                } ProgrammaticName;
 
-               class OColumnAlias
+            struct AliasDescription
+            {
+                ::rtl::OUString     sProgrammaticName;
+                ProgrammaticName    eProgrammaticNameIndex;
+
+                AliasDescription()
+                    :eProgrammaticNameIndex( END )
+                {
+                }
+
+                AliasDescription( const ::rtl::OUString& _rName, 
ProgrammaticName _eIndex )
+                    :sProgrammaticName( _rName ), eProgrammaticNameIndex( 
_eIndex )
                {
-                       /**
-                        * m_Alias holds aliases for the mozilla addressbook
-                        * column names. This member gets initialised during
-                         * creation of the connection to the driver.
-                        * m_aAlias initialises m_aAliasMap which then can be
-                        * used to find the corresponding programmatic name
-                        * when an alias is used as a query attribute. Mozilla
-                        * expects programmatic names from its clients.
-                        *
-                        * m_aAlias:   vector of aliases used to initialise 
m_aAliasMap.
-                        * m_AliasMap: map of {alias, programmaticname} pairs.
-                        *
-                        */
+                }
+            };
+
+            typedef ::std::map< ::rtl::OUString, AliasDescription > AliasMap;
+
                        private:                                        
-                               ::std::vector< ::rtl::OUString> m_aAlias;
-                               ::std::map< ::rtl::OUString, ::rtl::OUString> 
m_aAliasMap; 
+                       AliasMap    m_aAliasMap;
+
                        protected:
                                ::osl::Mutex  m_aMutex;
+
                        public:
-                                void initialise(void);
-                               const ::std::vector< ::rtl::OUString> & 
getAlias(void) const;
-                               const ::std::map< ::rtl::OUString, 
::rtl::OUString> & getAliasMap(void) const;
-                               void setAlias(const 
::com::sun::star::uno::Reference< 
-                                                    
::com::sun::star::lang::XMultiServiceFactory > &);
+                       OColumnAlias(
+                const ::com::sun::star::uno::Reference< 
::com::sun::star::lang::XMultiServiceFactory > & );
+
+            ProgrammaticName getProgrammaticNameIndex( const ::rtl::OUString& 
_rAliasName ) const;
+            inline bool hasAlias( const ::rtl::OUString& _rAlias ) const
+            {
+                return m_aAliasMap.find( _rAlias ) != m_aAliasMap.end();
+            }
+            ::rtl::OUString getProgrammaticNameOrFallbackToAlias( const 
::rtl::OUString& _rAlias ) const;
+
+            inline AliasMap::const_iterator begin() const { return 
m_aAliasMap.begin(); }
+            inline AliasMap::const_iterator end() const { return 
m_aAliasMap.end(); }
+
                        private:
-                               void setAliasMap(void);
-                       public:
-                               OColumnAlias(void);
-                               ~OColumnAlias(void);
+            void initialize( const ::com::sun::star::uno::Reference< 
::com::sun::star::lang::XMultiServiceFactory >& _rxORB );
                };
        }
 }




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to