tdf#39593 Change comphelper::getImplementation signature

To merge with comphelper::getUnoTunnelImplementation

Change-Id: I976d768d7fb159d50fa90e27ec36f2bea91ea2cb
Reviewed-on: https://gerrit.libreoffice.org/74542
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
diff --git a/connectivity/source/drivers/ado/AColumns.cxx b/connectivity/source/drivers/ado/AColumns.cxx
index e72681b..ef010cf 100644
--- a/connectivity/source/drivers/ado/AColumns.cxx
+++ b/connectivity/source/drivers/ado/AColumns.cxx
@@ -59,9 +59,9 @@
// XAppend
sdbcx::ObjectType OColumns::appendObject( const OUString&, const Reference< XPropertySet >& descriptor )
{
    OAdoColumn* pColumn = nullptr;
    OAdoColumn* pColumn = getImplementation<OAdoColumn>( descriptor );
    Reference< XPropertySet > xColumn;
    if ( !getImplementation( pColumn, descriptor ) || pColumn == nullptr )
    if ( pColumn == nullptr )
    {
        // m_pConnection->throwGenericSQLException( STR_INVALID_COLUMN_DESCRIPTOR_ERROR,static_cast<XTypeProvider*>(this) );
        pColumn = new OAdoColumn(isCaseSensitive(),m_pConnection);
diff --git a/connectivity/source/drivers/ado/AGroups.cxx b/connectivity/source/drivers/ado/AGroups.cxx
index 80d23e2..506aead 100644
--- a/connectivity/source/drivers/ado/AGroups.cxx
+++ b/connectivity/source/drivers/ado/AGroups.cxx
@@ -57,8 +57,8 @@
// XAppend
sdbcx::ObjectType OGroups::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
{
    OAdoGroup* pGroup = nullptr;
    if ( !getImplementation(pGroup,descriptor) || pGroup == nullptr )
    OAdoGroup* pGroup = getImplementation<OAdoGroup>(descriptor);
    if ( pGroup == nullptr )
        m_pCatalog->getConnection()->throwGenericSQLException( STR_INVALID_GROUP_DESCRIPTOR_ERROR,static_cast<XTypeProvider*>(this) );

    m_aCollection.Append( pGroup->getImpl() );
diff --git a/connectivity/source/drivers/ado/AIndexes.cxx b/connectivity/source/drivers/ado/AIndexes.cxx
index a54887d..46cd1c1 100644
--- a/connectivity/source/drivers/ado/AIndexes.cxx
+++ b/connectivity/source/drivers/ado/AIndexes.cxx
@@ -57,8 +57,8 @@
// XAppend
sdbcx::ObjectType OIndexes::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
{
    OAdoIndex* pIndex = nullptr;
    if ( !getImplementation(pIndex,descriptor) || pIndex == nullptr )
    OAdoIndex* pIndex = getImplementation<OAdoIndex>(descriptor);
    if ( pIndex == nullptr )
        m_pConnection->throwGenericSQLException( STR_INVALID_INDEX_DESCRIPTOR_ERROR,static_cast<XTypeProvider*>(this) );

    ADOIndexes* pIndexes = m_aCollection;
diff --git a/connectivity/source/drivers/ado/AKeys.cxx b/connectivity/source/drivers/ado/AKeys.cxx
index 559d7a7..e306f91 100644
--- a/connectivity/source/drivers/ado/AKeys.cxx
+++ b/connectivity/source/drivers/ado/AKeys.cxx
@@ -57,8 +57,8 @@
// XAppend
sdbcx::ObjectType OKeys::appendObject( const OUString&, const Reference< XPropertySet >& descriptor )
{
    OAdoKey* pKey = nullptr;
    if ( !getImplementation( pKey, descriptor ) || pKey == nullptr)
    OAdoKey* pKey = getImplementation<OAdoKey>( descriptor );
    if ( pKey == nullptr)
        m_pConnection->throwGenericSQLException( STR_INVALID_KEY_DESCRIPTOR_ERROR,static_cast<XTypeProvider*>(this) );

    // To pass as column parameter to Key's Append method
diff --git a/connectivity/source/drivers/ado/ATable.cxx b/connectivity/source/drivers/ado/ATable.cxx
index 09c4c397..34597d5 100644
--- a/connectivity/source/drivers/ado/ATable.cxx
+++ b/connectivity/source/drivers/ado/ATable.cxx
@@ -163,8 +163,8 @@
    checkDisposed(OTableDescriptor_BASE_TYPEDEF::rBHelper.bDisposed);

    bool bError = true;
    OAdoColumn* pColumn = nullptr;
    if(::comphelper::getImplementation(pColumn,descriptor) && pColumn != nullptr)
    OAdoColumn* pColumn = ::comphelper::getImplementation<OAdoColumn>(descriptor);
    if(pColumn != nullptr)
    {
        WpADOColumns aColumns = m_aTable.get_Columns();
        bError = !aColumns.Delete(colName);
diff --git a/connectivity/source/drivers/ado/ATables.cxx b/connectivity/source/drivers/ado/ATables.cxx
index 95c06f3..75fbaba 100644
--- a/connectivity/source/drivers/ado/ATables.cxx
+++ b/connectivity/source/drivers/ado/ATables.cxx
@@ -64,8 +64,8 @@
// XAppend
sdbcx::ObjectType OTables::appendObject( const OUString&, const Reference< XPropertySet >& descriptor )
{
    OAdoTable* pTable = nullptr;
    if ( !getImplementation( pTable, descriptor ) || pTable == nullptr )
    OAdoTable* pTable = getImplementation<OAdoTable>( descriptor );
    if ( pTable == nullptr )
        m_pCatalog->getConnection()->throwGenericSQLException( STR_INVALID_TABLE_DESCRIPTOR_ERROR,static_cast<XTypeProvider*>(this) );

    OSL_ENSURE(m_aCollection.IsValid(),"Collection isn't valid");
diff --git a/connectivity/source/drivers/ado/AUsers.cxx b/connectivity/source/drivers/ado/AUsers.cxx
index 48075d5..c7e3d66 100644
--- a/connectivity/source/drivers/ado/AUsers.cxx
+++ b/connectivity/source/drivers/ado/AUsers.cxx
@@ -55,8 +55,8 @@
// XAppend
sdbcx::ObjectType OUsers::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
{
    OUserExtend* pUser = nullptr;
    if ( !getImplementation( pUser, descriptor ) || pUser == nullptr )
    OUserExtend* pUser = getImplementation<OUserExtend>( descriptor );
    if ( pUser == nullptr )
        m_pCatalog->getConnection()->throwGenericSQLException( STR_INVALID_USER_DESCRIPTOR_ERROR,static_cast<XTypeProvider*>(this) );

    ADOUsers* pUsers = static_cast<ADOUsers*>(m_aCollection);
diff --git a/connectivity/source/drivers/ado/AViews.cxx b/connectivity/source/drivers/ado/AViews.cxx
index 7f6ccb0..01744952 100644
--- a/connectivity/source/drivers/ado/AViews.cxx
+++ b/connectivity/source/drivers/ado/AViews.cxx
@@ -59,8 +59,8 @@
// XAppend
sdbcx::ObjectType OViews::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
{
    OAdoView* pView = nullptr;
    if ( !getImplementation( pView, descriptor ) || pView == nullptr )
    OAdoView* pView = getImplementation<OAdoView>( descriptor );
    if ( pView == nullptr )
        m_pCatalog->getConnection()->throwGenericSQLException( STR_INVALID_VIEW_DESCRIPTOR_ERROR,static_cast<XTypeProvider*>(this) );

    WpADOCommand aCommand;
diff --git a/include/comphelper/types.hxx b/include/comphelper/types.hxx
index 1e5b2f9..3b9c3ef 100644
--- a/include/comphelper/types.hxx
+++ b/include/comphelper/types.hxx
@@ -52,14 +52,13 @@
    }

    template <class TYPE>
    bool getImplementation(TYPE*& _pObject, const css::uno::Reference< css::uno::XInterface >& _rxIFace)
    TYPE* getImplementation(const css::uno::Reference< css::uno::XInterface >& _rxIFace)
    {
        _pObject = nullptr;
        css::uno::Reference< css::lang::XUnoTunnel > xTunnel(_rxIFace, css::uno::UNO_QUERY);
        if (xTunnel.is())
            _pObject = reinterpret_cast< TYPE* >(xTunnel->getSomething(TYPE::getUnoTunnelImplementationId()));
            return reinterpret_cast< TYPE* >(xTunnel->getSomething(TYPE::getUnoTunnelImplementationId()));

        return (_pObject != nullptr);
        return nullptr;
    }