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]
