User: vg      
Date: 05/03/10 07:42:00

Modified:
 /dba/connectivity/source/sdbcx/
  VCollection.cxx

Log:
 INTEGRATION: CWS dba24 (1.35.32); FILE MERGED
 2005/02/09 08:07:58 oj 1.35.32.1: #i26950# remove the need for XNamed

File Changes:

Directory: /dba/connectivity/source/sdbcx/
==========================================

File [changed]: VCollection.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/sdbcx/VCollection.cxx?r1=1.35&r2=1.36
Delta lines:  +26 -17
---------------------
--- VCollection.cxx     22 Oct 2004 08:46:17 -0000      1.35
+++ VCollection.cxx     10 Mar 2005 15:41:57 -0000      1.36
@@ -149,7 +149,7 @@
                        m_aNameMap.clear();
                }
                // 
-----------------------------------------------------------------------------
-               virtual void insert(const ::rtl::OUString& _sName,const 
Object_BASE& _xObject)
+               virtual void insert(const ::rtl::OUString& _sName,const 
ObjectType& _xObject)
                {
                        
m_aElements.push_back(m_aNameMap.insert(m_aNameMap.begin(), 
ObjectEntry(_sName,_xObject)));
                }
@@ -160,7 +160,7 @@
                        m_aElements.reserve(_rVector.size());
                        
                        for(TStringVector::const_iterator i=_rVector.begin(); i 
!= _rVector.end();++i)
-                               
m_aElements.push_back(m_aNameMap.insert(m_aNameMap.begin(), 
ObjectEntry(*i,WeakReference< XNamed >())));
+                               
m_aElements.push_back(m_aNameMap.insert(m_aNameMap.begin(), 
ObjectEntry(*i,ObjectType())));
                }
                // 
-----------------------------------------------------------------------------
                virtual bool rename(const ::rtl::OUString _sOldName,const 
::rtl::OUString _sNewName)
@@ -243,18 +243,18 @@
                        return m_aElements[_nIndex]->first;
                }
                // 
-----------------------------------------------------------------------------
-               virtual Reference< XNamed > getObject(sal_Int32 _nIndex)
+               virtual ObjectType getObject(sal_Int32 _nIndex)
                {
                        OSL_ENSURE(_nIndex >= 0 && _nIndex < 
static_cast<sal_Int32>(m_aElements.size()),"Illegal argument!");
                        return m_aElements[_nIndex]->second;
                }
                // 
-----------------------------------------------------------------------------
-               virtual Reference< XNamed > getObject(const ::rtl::OUString& 
columnName)
+               virtual ObjectType getObject(const ::rtl::OUString& columnName)
                {
                        return m_aNameMap.find(columnName)->second;
                }
                // 
-----------------------------------------------------------------------------
-               virtual void setObject(sal_Int32 _nIndex,const 
::com::sun::star::uno::Reference< ::com::sun::star::container::XNamed >& 
_xObject)
+               virtual void setObject(sal_Int32 _nIndex,const ObjectType& 
_xObject)
                {
                        OSL_ENSURE(_nIndex >= 0 && _nIndex < 
static_cast<sal_Int32>(m_aElements.size()),"Illegal argument!");
                        m_aElements[_nIndex]->second = _xObject;
@@ -285,11 +285,11 @@
 {
        if ( _bUseHardRef )
        {
-               m_pElements.reset(new OHardRefMap< Reference< XNamed> 
>(_bCase));
+               m_pElements.reset(new OHardRefMap< ObjectType >(_bCase));
        }
        else
        {
-               m_pElements.reset(new OHardRefMap< WeakReference< XNamed> 
>(_bCase));
+               m_pElements.reset(new OHardRefMap< WeakReference< XPropertySet> 
>(_bCase));
        }
        m_pElements->reFill(_rVector);
 }
@@ -399,21 +399,31 @@
 
        return createEmptyObject();
 }
+// 
-----------------------------------------------------------------------------
+::rtl::OUString OCollection::getNameForObject(const ObjectType& _xObject)
+{
+    OSL_ENSURE(_xObject.is(),"OCollection::getNameForObject: Object is NULL!");
+    ::rtl::OUString sName;
+    
_xObject->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME))
 >>= sName;
+    return sName;
+}
 // -------------------------------------------------------------------------
 // XAppend
 void SAL_CALL OCollection::appendByDescriptor( const Reference< XPropertySet 
>& descriptor ) throw(SQLException, ElementExistException, RuntimeException)
 {
        ::osl::MutexGuard aGuard(m_rMutex);
 
-       Reference< XNamed > xName(descriptor,UNO_QUERY);
+       ObjectType xName(descriptor,UNO_QUERY);
        if(xName.is())
        {
-               ::rtl::OUString sName = xName->getName();
+               
+        ::rtl::OUString sName = getNameForObject(xName);
+
                if ( m_pElements->exists(sName) )
                        throw 
ElementExistException(sName,static_cast<XTypeProvider*>(this));
 
                appendObject(descriptor);
-               Reference< XNamed > xNewName = cloneObject(descriptor);
+               ObjectType xNewName = cloneObject(descriptor);
                Reference<XUnoTunnel> xTunnel(xNewName,UNO_QUERY);
                if(xTunnel.is())
                {
@@ -424,7 +434,7 @@
 
                if(xNewName.is())
                {
-                       sName = xNewName->getName();
+            sName = getNameForObject(xNewName);
                        if ( !m_pElements->exists(sName) ) // this may happen 
when the drived class included it itself
                                m_pElements->insert(sName,xNewName);
                        // notify our container listeners
@@ -548,7 +558,7 @@
        m_aRefreshListeners.removeInterface(l);
 }
 // 
-----------------------------------------------------------------------------
-void OCollection::insertElement(const ::rtl::OUString& _sElementName,const 
Object_BASE& _xElement)
+void OCollection::insertElement(const ::rtl::OUString& _sElementName,const 
ObjectType& _xElement)
 {
        OSL_ENSURE(!m_pElements->exists(_sElementName),"Element already 
exists");
        if ( !m_pElements->exists(_sElementName) ) 
@@ -572,9 +582,9 @@
        }
 }
 // 
-----------------------------------------------------------------------------
-Reference< XNamed > OCollection::getObject(sal_Int32 _nIndex)
+ObjectType OCollection::getObject(sal_Int32 _nIndex)
 {
-       Reference< XNamed > xName = m_pElements->getObject(_nIndex);
+       ObjectType xName = m_pElements->getObject(_nIndex);
        if ( !xName.is() )
        {
                try
@@ -612,10 +622,9 @@
 {
 }
 // 
-----------------------------------------------------------------------------
-Reference< XNamed > OCollection::cloneObject(const Reference< XPropertySet >& 
_xDescriptor)
+ObjectType OCollection::cloneObject(const Reference< XPropertySet >& 
_xDescriptor)
 {
-       OSL_ASSERT(!"Need to be overloaded when used!");
-       throw SQLException();
+       return _xDescriptor.is() ? createObject(getNameForObject(_xDescriptor)) 
: sdbcx::ObjectType();
 }
 // 
-----------------------------------------------------------------------------
 void OCollection::dropObject(sal_Int32 _nPos,const ::rtl::OUString 
_sElementName)




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

Reply via email to