Implement getTables(). (firebird-sdbc)

Change-Id: I6b13fe51547ac5a51a03bf9b55f8e684275652cb
diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx
index 63daf08a..9dbc87f 100644
--- a/connectivity/source/drivers/firebird/Connection.cxx
+++ b/connectivity/source/drivers/firebird/Connection.cxx
@@ -766,8 +766,8 @@ void OConnection::clearStatements()
uno::Reference< XNameAccess > SAL_CALL OConnection::getTables()
    throw (RuntimeException)
{
    // TODO: IMPLEMENT ME PROPERLY
    //return new Tables();
    return 0;
    return new Tables(getMetaData(),
                      *this,
                      m_aMutex);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/connectivity/source/drivers/firebird/Tables.cxx b/connectivity/source/drivers/firebird/Tables.cxx
index 607fdc3..be3d231 100644
--- a/connectivity/source/drivers/firebird/Tables.cxx
+++ b/connectivity/source/drivers/firebird/Tables.cxx
@@ -26,13 +26,15 @@ using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::uno;


Tables::Tables(ODatabaseMetaData& xMetaData,
Tables::Tables(const uno::Reference< XDatabaseMetaData >& rMetaData,
               OWeakObject& rParent,
               Mutex& rMutex,
               const TStringVector& rVector) :
    OCollection(rParent, sal_True, rMutex, rVector),
               Mutex& rMutex) :
    OCollection(rParent,
                sal_True,
                rMutex,
                TStringVector(1, "TABLE")), // std::vector with 1 element
    m_rMutex(rMutex),
    m_xMetaData(xMetaData)
    m_xMetaData(rMetaData)
{
}

@@ -47,10 +49,10 @@ ObjectType Tables::createObject(const OUString& rName)
{
    // TODO: parse the name.
    // TODO: use table types
    uno::Reference< XResultSet > xTables = m_xMetaData.getTables(Any(),
                                                                 OUString(),
                                                                 rName,
                                                                 uno::Sequence< OUString >());
    uno::Reference< XResultSet > xTables = m_xMetaData->getTables(Any(),
                                                                  OUString(),
                                                                  rName,
                                                                  uno::Sequence< OUString >());

    if (!xTables.is())
        throw RuntimeException();
@@ -62,7 +64,7 @@ ObjectType Tables::createObject(const OUString& rName)

    ObjectType xRet(new Table(this,
                              m_rMutex,
                              m_xMetaData.getConnection(),
                              m_xMetaData->getConnection(),
                              xRow->getString(3), // Name
                              xRow->getString(4), // Type
                              xRow->getString(5))); // Description / Remarks / Comments
diff --git a/connectivity/source/drivers/firebird/Tables.hxx b/connectivity/source/drivers/firebird/Tables.hxx
index 8128fb4..2f21cd6 100644
--- a/connectivity/source/drivers/firebird/Tables.hxx
+++ b/connectivity/source/drivers/firebird/Tables.hxx
@@ -35,13 +35,13 @@ namespace connectivity
            virtual ::connectivity::sdbcx::ObjectType createObject(
                                                const ::rtl::OUString& rName);

            ODatabaseMetaData& m_xMetaData;
            ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >
                m_xMetaData;

        public:
            Tables(ODatabaseMetaData& xMetaData,
            Tables(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& rMetaData,
                   ::cppu::OWeakObject& rParent,
                   ::osl::Mutex& rMutex,
                   const ::connectivity::TStringVector& rVector);
                   ::osl::Mutex& rMutex);

            // TODO: we should also implement XDataDescriptorFactory, XRefreshable,
            // XAppend,  etc., but all are optional.