User: hr      
Date: 05/09/23 05:06:00

Modified:
 /dba/dbaccess/source/core/dataaccess/
  definitioncontainer.cxx

Log:
 INTEGRATION: CWS dba201b (1.18.36); FILE MERGED
 2005/09/21 07:02:17 oj 1.18.36.2: RESYNC: (1.18-1.19); FILE MERGED
 2005/07/06 07:46:54 oj 1.18.36.1: #i48015# throw illegalargument exception 
when object is inserted twice with different name

File Changes:

Directory: /dba/dbaccess/source/core/dataaccess/
================================================

File [changed]: definitioncontainer.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/dataaccess/definitioncontainer.cxx?r1=1.19&r2=1.20
Delta lines:  +25 -1
--------------------
--- definitioncontainer.cxx     8 Sep 2005 13:29:22 -0000       1.19
+++ definitioncontainer.cxx     23 Sep 2005 12:05:57 -0000      1.20
@@ -566,7 +566,31 @@
 // 
-----------------------------------------------------------------------------
 sal_Bool ODefinitionContainer::approveNewObject(const ::rtl::OUString& 
_sName,const Reference< XContent >& _rxObject) const
 {
-       return _rxObject.is();
+       Reference<XUnoTunnel> xUnoTunnel(_rxObject,UNO_QUERY);
+       ::rtl::Reference<OContentHelper> pContent = NULL;
+       sal_Bool bRet = sal_False;
+       ODefinitionContainer_Impl* pItem = 
static_cast<ODefinitionContainer_Impl*>(m_pImpl.get());
+       ODefinitionContainer_Impl::Documents::iterator aFind = 
pItem->m_aDocumentMap.find(_sName);
+       if ( aFind == pItem->m_aDocumentMap.end() )
+       {
+               if ( bRet = xUnoTunnel.is() )
+               {
+                       pContent = 
reinterpret_cast<OContentHelper*>(xUnoTunnel->getSomething(OContentHelper::getUnoTunnelImplementationId()));
+                       TContentPtr pImpl = pContent->getImpl();
+                       ODefinitionContainer_Impl::Documents::iterator aIter =
+                               ::std::find_if(
+                                       pItem->m_aDocumentMap.begin(),
+                                       pItem->m_aDocumentMap.end(),
+                                       ::std::compose1(
+                                               
::std::bind2nd(::std::equal_to<TContentPtr>(), pImpl),
+                                               
::std::select2nd<ODefinitionContainer_Impl::Documents::value_type>()
+                                       )
+                               );
+
+                       bRet = aIter == pItem->m_aDocumentMap.end();
+               }
+       }
+       return bRet;
 }
 // 
-----------------------------------------------------------------------------
 // XPropertyChangeListener




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

Reply via email to