0a1d822372
Attempt to clean up most but certainly not all the spelling mistakes that found home in OpenOffice through decades. We could probably blame the international nature of the code but it is somewhat shameful that this wasn't done before. (cherry picked from commit a6efc99d19d533fcf53106b6667bafba4d364370) Conflicts: accessibility/bridge/org/openoffice/java/accessibility/AccessibleTextImpl.java accessibility/bridge/org/openoffice/java/accessibility/Component.java accessibility/bridge/org/openoffice/java/accessibility/Container.java accessibility/bridge/org/openoffice/java/accessibility/DescendantManager.java accessibility/bridge/org/openoffice/java/accessibility/Dialog.java accessibility/bridge/org/openoffice/java/accessibility/Frame.java accessibility/bridge/org/openoffice/java/accessibility/List.java accessibility/bridge/org/openoffice/java/accessibility/Menu.java accessibility/bridge/org/openoffice/java/accessibility/Table.java accessibility/bridge/org/openoffice/java/accessibility/Tree.java accessibility/bridge/org/openoffice/java/accessibility/Window.java accessibility/bridge/source/java/WindowsAccessBridgeAdapter.cxx accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx accessibility/source/extended/accessibleiconchoicectrlentry.cxx accessibility/source/extended/accessiblelistboxentry.cxx accessibility/source/extended/accessibletablistbox.cxx accessibility/source/extended/accessibletablistboxtable.cxx accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java apple_remote/AppleRemote.m autodoc/inc/ary/cpp/c_gate.hxx autodoc/inc/ary/cpp/cp_ce.hxx autodoc/inc/ary/cpp/cp_def.hxx autodoc/inc/ary/cpp/cp_type.hxx autodoc/inc/ary/doc/d_parametrized.hxx autodoc/inc/ary/idl/i_type.hxx autodoc/source/ary/inc/cross_refs.hxx autodoc/source/ary/inc/sorted_idset.hxx autodoc/source/display/html/outfile.hxx autodoc/source/display/html/pagemake.cxx autodoc/source/display/idl/hi_env.hxx autodoc/source/parser/inc/tokens/tokproct.hxx autodoc/source/parser_i/inc/s2_luidl/tokproct.hxx autodoc/source/parser_i/inc/tokens/tkp2.hxx automation/inc/automation/commtypes.hxx automation/inc/automation/simplecm.hxx automation/source/server/recorder.cxx automation/source/server/recorder.hxx automation/source/server/statemnt.cxx automation/source/simplecm/packethandler.hxx automation/source/simplecm/simplecm.cxx avmedia/source/framework/soundhandler.cxx basegfx/inc/basegfx/range/rangeexpander.hxx basic/inc/basic/sbxdef.hxx basic/source/classes/sbunoobj.cxx basic/source/classes/sbxmod.cxx basic/source/comp/dim.cxx basic/source/comp/exprgen.cxx basic/source/runtime/step1.cxx basic/source/runtime/step2.cxx basic/source/sbx/sbxint.cxx basic/source/uno/namecont.cxx basic/workben/mgrtest.cxx bean/com/sun/star/beans/LocalOfficeConnection.java bean/com/sun/star/beans/LocalOfficeWindow.java bean/com/sun/star/comp/beans/LocalOfficeConnection.java bean/com/sun/star/comp/beans/LocalOfficeWindow.java bean/com/sun/star/comp/beans/OOoBean.java bridges/inc/bridges/cpp_uno/bridge.hxx bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx bridges/source/cpp_uno/cc50_solaris_intel/except.cxx bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx bridges/source/cpp_uno/gcc3_macosx_x86-64/uno2cpp.cxx bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx bridges/source/cpp_uno/gcc3_os2_intel/except.cxx bridges/source/cpp_uno/gcc3_os2_intel/uno2cpp.cxx bridges/source/cpp_uno/mingw_x86-64/uno2cpp.cxx bridges/source/cpp_uno/msvc_win32_intel/except.cxx bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx bridges/source/cpp_uno/shared/component.cxx bridges/source/jni_uno/jni_base.h bridges/source/jni_uno/jni_bridge.cxx bridges/source/jni_uno/jni_java2uno.cxx bridges/source/jni_uno/jni_uno2java.cxx canvas/inc/canvas/base/doublebitmapbase.hxx canvas/inc/canvas/base/floatbitmapbase.hxx canvas/inc/canvas/base/integerbitmapbase.hxx canvas/source/cairo/cairo_canvasbitmap.cxx canvas/source/cairo/cairo_textlayout.cxx chart2/source/controller/dialogs/ObjectNameProvider.cxx chart2/source/view/diagram/VDiagram.cxx chart2/source/view/main/ChartView.cxx cli_ure/source/native/makefile.mk cli_ure/source/uno_bridge/cli_data.cxx codemaker/source/javamaker/javatype.cxx comphelper/inc/comphelper/componentcontext.hxx comphelper/inc/comphelper/interaction.hxx comphelper/inc/comphelper/locale.hxx comphelper/inc/comphelper/string.hxx comphelper/source/container/embeddedobjectcontainer.cxx comphelper/source/misc/accessiblecontexthelper.cxx comphelper/source/misc/asyncnotification.cxx comphelper/source/misc/locale.cxx comphelper/source/misc/mediadescriptor.cxx comphelper/source/misc/numberedcollection.cxx comphelper/source/misc/proxyaggregation.cxx comphelper/source/misc/scopeguard.cxx comphelper/source/misc/sequenceashashmap.cxx configure.in connectivity/source/commontools/parameters.cxx connectivity/source/drivers/dbase/DTable.cxx connectivity/source/drivers/evoab2/NStatement.cxx connectivity/source/drivers/file/FPreparedStatement.cxx connectivity/source/drivers/jdbc/DatabaseMetaData.cxx connectivity/source/inc/flat/ETable.hxx connectivity/source/parse/sqlnode.cxx cosv/inc/cosv/persist.hxx cosv/inc/cosv/ploc_dir.hxx cosv/inc/cosv/tpl/dyn.hxx cppu/source/LogBridge/LogBridge.cxx cppu/source/uno/data.cxx cppuhelper/source/bootstrap.cxx cppuhelper/source/component_context.cxx cppuhelper/source/propshlp.cxx cppuhelper/source/servicefactory.cxx cpputools/source/registercomponent/registercomponent.cxx cui/source/customize/acccfg.cxx cui/source/dialogs/about.cxx cui/source/dialogs/commonlingui.hxx cui/source/dialogs/showcols.cxx cui/source/inc/cuihyperdlg.hxx cui/source/inc/cuitabline.hxx cui/source/options/optsave.src cui/source/tabpages/tpline.cxx cui/source/tabpages/transfrm.cxx dbaccess/source/core/api/CacheSet.cxx dbaccess/source/core/api/KeySet.cxx dbaccess/source/core/api/RowSet.cxx dbaccess/source/core/api/RowSet.hxx dbaccess/source/core/api/RowSetBase.cxx dbaccess/source/core/api/RowSetBase.hxx dbaccess/source/core/api/RowSetCache.cxx dbaccess/source/core/api/querycomposer.cxx dbaccess/source/ext/adabas/Acomponentmodule.hxx dbaccess/source/ui/app/AppControllerDnD.cxx dbaccess/source/ui/app/AppDetailView.cxx dbaccess/source/ui/browser/brwctrlr.cxx dbaccess/source/ui/browser/sbagrid.cxx dbaccess/source/ui/browser/unodatbr.cxx dbaccess/source/ui/dlg/AdabasStat.hxx dbaccess/source/ui/dlg/UserAdmin.cxx dbaccess/source/ui/dlg/directsql.cxx dbaccess/source/ui/dlg/generalpage.hxx dbaccess/source/ui/dlg/tablespage.cxx dbaccess/source/ui/inc/JoinTableView.hxx dbaccess/source/ui/inc/TableController.hxx dbaccess/source/ui/inc/UITools.hxx dbaccess/source/ui/inc/brwctrlr.hxx dbaccess/source/ui/inc/datasourcemap.hxx dbaccess/source/ui/querydesign/JoinTableView.cxx dbaccess/source/ui/querydesign/QueryDesignView.cxx dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx dbaccess/source/ui/querydesign/TableWindow.cxx dbaccess/source/ui/querydesign/querycontroller.cxx dbaccess/source/ui/relationdesign/RelationTableView.cxx dbaccess/source/ui/tabledesign/TableController.cxx desktop/source/app/app.cxx desktop/source/app/appinit.cxx desktop/source/app/langselect.cxx desktop/source/app/officeipcthread.cxx desktop/source/deployment/manager/dp_extensionmanager.cxx desktop/source/deployment/misc/dp_misc.cxx desktop/source/deployment/misc/dp_resource.cxx desktop/source/deployment/registry/dp_backend.cxx desktop/source/deployment/registry/package/dp_package.cxx desktop/source/migration/cfgfilter.cxx desktop/source/migration/migration.cxx desktop/source/splash/splash.cxx desktop/win32/source/QuickStart/QuickStart.cpp desktop/win32/source/setup/setup.cpp drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx dtrans/source/win32/clipb/MtaOleClipb.hxx dtrans/source/win32/clipb/WinClipbImpl.cxx editeng/source/editeng/editview.cxx editeng/source/editeng/impedit2.cxx editeng/source/editeng/impedit3.cxx editeng/source/editeng/impedit4.cxx editeng/source/editeng/textconv.hxx editeng/source/misc/unolingu.cxx embeddedobj/source/commonembedding/persistence.cxx embeddedobj/source/general/dummyobject.cxx embeddedobj/source/msole/olecomponent.cxx embeddedobj/source/msole/olepersist.cxx embeddedobj/test/Container1/NativeView.java extensions/source/bibliography/framectr.cxx extensions/source/macosx/spotlight/OOoContentDataParser.m extensions/source/macosx/spotlight/unzip.h extensions/source/macosx/spotlight/unzip.m extensions/source/oooimprovement/myconfigurationhelper.hxx extensions/source/propctrlr/eventhandler.cxx extensions/source/propctrlr/formcomponenthandler.cxx extensions/source/propctrlr/pcrcomponentcontext.hxx extensions/source/scanner/twain.cxx extensions/source/update/check/updatecheckconfig.hxx external/mingwheaders/mingw_atl_headers.patch extras/source/misc_config/wizard/web/layouts/source.xml.xsl fileaccess/source/FileAccess.cxx filter/inc/filter/msfilter/msocximex.hxx filter/inc/filter/msfilter/svxmsbas.hxx filter/qa/complex/filter/detection/typeDetection/Helper.java filter/source/config/cache/basecontainer.cxx filter/source/config/cache/cacheitem.hxx filter/source/config/cache/contenthandlerfactory.cxx filter/source/config/cache/filtercache.cxx filter/source/config/cache/filtercache.hxx filter/source/config/cache/filterfactory.cxx filter/source/config/cache/frameloaderfactory.cxx filter/source/config/cache/querytokenizer.hxx filter/source/config/cache/typedetection.cxx filter/source/config/cache/typedetection.hxx filter/source/config/cache/versions.hxx filter/source/config/fragments/makefile.mk filter/source/config/tools/merge/pyAltFCFGMerge filter/source/flash/swfwriter.cxx filter/source/flash/swfwriter1.cxx filter/source/msfilter/msdffimp.cxx filter/source/msfilter/msocximex.cxx filter/source/msfilter/msvbahelper.cxx filter/source/msfilter/svxmsbas.cxx filter/source/xmlfilterdetect/filterdetect.cxx filter/source/xslt/import/uof2/uof2odf.xsl filter/source/xslt/odf2xhtml/export/xhtml/body.xsl filter/source/xsltfilter/com/sun/star/comp/xsltfilter/Base64.java forms/source/xforms/convert.hxx forms/source/xforms/model.cxx fpicker/source/aqua/SalAquaFilePicker.mm fpicker/source/office/fpinteraction.cxx fpicker/source/unx/gnome/SalGtkFolderPicker.cxx fpicker/source/unx/kde4/KDE4FilePicker.cxx fpicker/source/win32/filepicker/PreviewCtrl.cxx fpicker/source/win32/filepicker/PreviewCtrl.hxx fpicker/source/win32/filepicker/VistaFilePicker.cxx fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx fpicker/source/win32/filepicker/helppopupwindow.hxx fpicker/source/win32/folderpicker/MtaFop.hxx framework/inc/classes/droptargetlistener.hxx framework/inc/classes/filtercache.hxx framework/inc/classes/filtercachedata.hxx framework/inc/classes/protocolhandlercache.hxx framework/inc/classes/servicemanager.hxx framework/inc/commands.h framework/inc/dispatch/basedispatcher.hxx framework/inc/dispatch/blankdispatcher.hxx framework/inc/dispatch/closedispatcher.hxx framework/inc/dispatch/createdispatcher.hxx framework/inc/dispatch/dispatchprovider.hxx framework/inc/dispatch/helpagentdispatcher.hxx framework/inc/dispatch/mailtodispatcher.hxx framework/inc/dispatch/menudispatcher.hxx framework/inc/dispatch/oxt_handler.hxx framework/inc/dispatch/popupmenudispatcher.hxx framework/inc/dispatch/selfdispatcher.hxx framework/inc/dispatch/servicehandler.hxx framework/inc/dispatch/startmoduledispatcher.hxx framework/inc/dispatch/systemexec.hxx framework/inc/helper/fixeddocumentproperties.hxx framework/inc/helper/ocomponentaccess.hxx framework/inc/helper/oframes.hxx framework/inc/helper/otasksenumeration.hxx framework/inc/helper/persistentwindowstate.hxx framework/inc/helper/statusindicator.hxx framework/inc/helper/statusindicatorfactory.hxx framework/inc/helper/tagwindowasmodified.hxx framework/inc/helper/titlebarupdate.hxx framework/inc/helper/vclstatusindicator.hxx framework/inc/interaction/quietinteraction.hxx framework/inc/jobs/helponstartup.hxx framework/inc/jobs/job.hxx framework/inc/jobs/jobdata.hxx framework/inc/jobs/jobexecutor.hxx framework/inc/loadstate.h framework/inc/macros/debug/assertion.hxx framework/inc/macros/debug/event.hxx framework/inc/macros/debug/filterdbg.hxx framework/inc/macros/debug/memorymeasure.hxx framework/inc/macros/debug/timemeasure.hxx framework/inc/macros/xserviceinfo.hxx framework/inc/queries.h framework/inc/recording/dispatchrecordersupplier.hxx framework/inc/services/autorecovery.hxx framework/inc/services/backingcomp.hxx framework/inc/services/contenthandlerfactory.hxx framework/inc/services/desktop.hxx framework/inc/services/detectorfactory.hxx framework/inc/services/frame.hxx framework/inc/services/frameloaderfactory.hxx framework/inc/services/layoutmanager.hxx framework/inc/services/license.hxx framework/inc/services/logindialog.hxx framework/inc/services/modulemanager.hxx framework/inc/services/pathsettings.hxx framework/inc/services/pluginframe.hxx framework/inc/services/substitutepathvars.hxx framework/inc/services/task.hxx framework/inc/services/taskcreatorsrv.hxx framework/inc/stdtypes.h framework/inc/threadhelp/fairrwlock.hxx framework/inc/threadhelp/inoncopyable.h framework/inc/threadhelp/itransactionmanager.h framework/inc/threadhelp/lockhelper.hxx framework/inc/threadhelp/readguard.hxx framework/inc/threadhelp/resetableguard.hxx framework/inc/threadhelp/transactionguard.hxx framework/inc/threadhelp/writeguard.hxx framework/inc/uifactory/uielementfactorymanager.hxx framework/inc/xml/acceleratorconfigurationreader.hxx framework/qa/complex/dispatches/checkdispatchapi.java framework/qa/complex/framework/autosave/AutoSave.java framework/qa/complex/framework/autosave/Protocol.java framework/qa/complex/framework/recovery/RecoveryTest.java framework/qa/complex/loadAllDocuments/StreamSimulator.java framework/source/accelerators/acceleratorconfiguration.cxx framework/source/accelerators/acceleratorexecute.cxx framework/source/accelerators/acceleratorexecute.hxx framework/source/accelerators/keymapping.cxx framework/source/accelerators/presethandler.cxx framework/source/application/framework.cxx framework/source/application/login.cxx framework/source/classes/framecontainer.cxx framework/source/classes/menumanager.cxx framework/source/classes/taskcreator.cxx framework/source/dispatch/closedispatcher.cxx framework/source/dispatch/dispatchprovider.cxx framework/source/dispatch/helpagentdispatcher.cxx framework/source/dispatch/interceptionhelper.cxx framework/source/dispatch/mailtodispatcher.cxx framework/source/dispatch/menudispatcher.cxx framework/source/dispatch/oxt_handler.cxx framework/source/dispatch/servicehandler.cxx framework/source/fwe/classes/framelistanalyzer.cxx framework/source/fwe/dispatch/interaction.cxx framework/source/fwe/helper/titlehelper.cxx framework/source/fwe/helper/undomanagerhelper.cxx framework/source/fwe/xml/eventsdocumenthandler.cxx framework/source/fwe/xml/statusbardocumenthandler.cxx framework/source/fwe/xml/toolboxdocumenthandler.cxx framework/source/fwi/classes/protocolhandlercache.cxx framework/source/fwi/threadhelp/lockhelper.cxx framework/source/fwi/threadhelp/transactionmanager.cxx framework/source/helper/persistentwindowstate.cxx framework/source/helper/statusindicatorfactory.cxx framework/source/helper/vclstatusindicator.cxx framework/source/inc/accelerators/acceleratorcache.hxx framework/source/inc/accelerators/acceleratorconfiguration.hxx framework/source/inc/accelerators/presethandler.hxx framework/source/inc/accelerators/storageholder.hxx framework/source/inc/loadenv/actionlockguard.hxx framework/source/inc/loadenv/loadenv.hxx framework/source/inc/loadenv/loadenvexception.hxx framework/source/inc/pattern/frame.hxx framework/source/inc/pattern/storages.hxx framework/source/inc/pattern/window.hxx framework/source/jobs/helponstartup.cxx framework/source/jobs/job.cxx framework/source/jobs/jobdata.cxx framework/source/jobs/jobdispatch.cxx framework/source/jobs/jobresult.cxx framework/source/jobs/joburl.cxx framework/source/jobs/shelljob.cxx framework/source/loadenv/loadenv.cxx framework/source/services/autorecovery.cxx framework/source/services/backingwindow.cxx framework/source/services/desktop.cxx framework/source/services/frame.cxx framework/source/services/modulemanager.cxx framework/source/services/pathsettings.cxx framework/source/services/substitutepathvars.cxx framework/source/uiconfiguration/moduleuicfgsupplier.cxx framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx framework/source/uiconfiguration/uicategorydescription.cxx framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx framework/source/uiconfiguration/windowstateconfiguration.cxx framework/source/uielement/uicommanddescription.cxx framework/source/unotypes/fwk.xml framework/source/xml/imagesdocumenthandler.cxx framework/test/test.cxx framework/test/test_componentenumeration.bas framework/test/test_statusindicatorfactory.bas framework/test/threadtest.cxx framework/test/threadtest/threadtest.cxx framework/test/typecfg/cfgview.cxx framework/test/typecfg/xml2xcd.cxx include/basegfx/polygon/b2dpolygon.hxx include/canvas/base/graphicdevicebase.hxx include/canvas/canvastools.hxx include/comphelper/configurationhelper.hxx include/comphelper/embeddedobjectcontainer.hxx include/comphelper/propagg.hxx include/comphelper/sequenceashashmap.hxx include/connectivity/sqlerror.hxx include/connectivity/sqlnode.hxx include/cppuhelper/propshlp.hxx include/editeng/AccessibleContextBase.hxx include/framework/framelistanalyzer.hxx sfx2/source/dialog/backingcomp.cxx vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx Change-Id: I2618bf83c0e30f68f23ff25f6eb466df04d34c6d
417 lines
19 KiB
C++
417 lines
19 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
#ifndef INCLUDED_CONNECTIVITY_PARAMETERS_HXX
|
|
#define INCLUDED_CONNECTIVITY_PARAMETERS_HXX
|
|
|
|
#include <map>
|
|
#include <vector>
|
|
|
|
#include <com/sun/star/uno/XAggregation.hpp>
|
|
#include <com/sun/star/uno/XComponentContext.hpp>
|
|
#include <com/sun/star/form/XDatabaseParameterListener.hpp>
|
|
#include <com/sun/star/sdbc/XConnection.hpp>
|
|
#include <com/sun/star/task/XInteractionHandler.hpp>
|
|
#include <com/sun/star/sdbc/XParameters.hpp>
|
|
#include <com/sun/star/container/XIndexAccess.hpp>
|
|
#include <com/sun/star/beans/XPropertySet.hpp>
|
|
#include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp>
|
|
|
|
#include <connectivity/dbtoolsdllapi.hxx>
|
|
#include <connectivity/paramwrapper.hxx>
|
|
#include <unotools/sharedunocomponent.hxx>
|
|
#include <comphelper/implementationreference.hxx>
|
|
#include <cppuhelper/interfacecontainer.hxx>
|
|
|
|
|
|
namespace dbtools
|
|
{
|
|
|
|
|
|
typedef ::utl::SharedUNOComponent< ::com::sun::star::sdb::XSingleSelectQueryComposer, ::utl::DisposableComponent >
|
|
SharedQueryComposer;
|
|
|
|
|
|
//= ParameterManager
|
|
|
|
class FilterManager;
|
|
class OOO_DLLPUBLIC_DBTOOLS ParameterManager
|
|
{
|
|
public:
|
|
/// classifies the origin of the data to fill a parameter
|
|
enum ParameterClassification
|
|
{
|
|
/** parameters which are filled from the master-detail relationship, where the detail
|
|
name is an explicit parameter name
|
|
*/
|
|
eLinkedByParamName,
|
|
/** parameters which are filled from the master-detail relationship, where the detail
|
|
name is a column name, so an implicit parameter had to be generated for it
|
|
*/
|
|
eLinkedByColumnName,
|
|
/** parameters which are filled externally (i.e. by XParameters::setXXX, or by the parameter listeners)
|
|
*/
|
|
eFilledExternally
|
|
};
|
|
/** meta data about an inner parameter
|
|
*/
|
|
private:
|
|
struct ParameterMetaData
|
|
{
|
|
/// the type of the parameter
|
|
ParameterClassification eType;
|
|
/// the column object for this parameter, as returned by the query composer
|
|
::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
|
|
xComposerColumn;
|
|
/// the indices of inner parameters which need to be filled when this concrete parameter is set
|
|
::std::vector< sal_Int32 > aInnerIndexes;
|
|
|
|
/// default ctor
|
|
ParameterMetaData()
|
|
:eType( eFilledExternally )
|
|
{
|
|
}
|
|
|
|
/// ctor with composer column
|
|
ParameterMetaData( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxColumn )
|
|
:eType ( eFilledExternally )
|
|
,xComposerColumn ( _rxColumn )
|
|
{
|
|
}
|
|
};
|
|
|
|
typedef ::std::map< OUString, ParameterMetaData > ParameterInformation;
|
|
|
|
private:
|
|
::osl::Mutex& m_rMutex;
|
|
::cppu::OInterfaceContainerHelper m_aParameterListeners;
|
|
|
|
::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >
|
|
m_xContext;
|
|
|
|
::com::sun::star::uno::WeakReference< ::com::sun::star::beans::XPropertySet >
|
|
m_xComponent; // the database component whose parameters we're handling
|
|
::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation >
|
|
m_xAggregatedRowSet; // the aggregated row set - necessary for unwrapped access to some interfaces
|
|
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XParameters >
|
|
m_xInnerParamUpdate; // write access to the inner parameters
|
|
SharedQueryComposer m_xComposer; // query composer wrapping the statement which the *aggregate* is based on
|
|
SharedQueryComposer m_xParentComposer; // query composer wrapping the statement of our parent database component
|
|
::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
|
|
m_xInnerParamColumns; // index access to the parameter columns, as got from the query composer
|
|
|
|
::dbtools::param::ParametersContainerRef
|
|
m_pOuterParameters; // the container of parameters which still need to be filled in by
|
|
// external instances
|
|
sal_Int32 m_nInnerCount; // overall number of parameters as required by the database component's aggregate
|
|
|
|
ParameterInformation m_aParameterInformation;
|
|
|
|
::com::sun::star::uno::Sequence< OUString > m_aMasterFields;
|
|
::com::sun::star::uno::Sequence< OUString > m_aDetailFields;
|
|
|
|
OUString m_sIdentifierQuoteString;
|
|
OUString m_sSpecialCharacters;
|
|
|
|
::std::vector< bool > m_aParametersVisited;
|
|
|
|
bool m_bUpToDate;
|
|
|
|
public:
|
|
/** ctor
|
|
*/
|
|
explicit ParameterManager(
|
|
::osl::Mutex& _rMutex,
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext
|
|
);
|
|
|
|
/// late ctor
|
|
void initialize(
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxComponent,
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation >& _rxComponentAggregate
|
|
);
|
|
|
|
/// makes the object forgetting the references to the database component
|
|
void dispose( );
|
|
|
|
/// clears the instance data
|
|
void clearAllParameterInformation();
|
|
|
|
/// checks whether the parameter information are up-to-date
|
|
inline bool isUpToDate() const { return m_bUpToDate; }
|
|
|
|
/** updates all parameter information represented by the instance
|
|
*/
|
|
void updateParameterInfo( FilterManager& _rFilterManager );
|
|
|
|
/** fills parameter values, as extensive as possible
|
|
|
|
<p>In particular, all values which can be filled from the master-detail relationship of
|
|
between our database component and its parent are filled in.</p>
|
|
|
|
@param _rxCompletionHandler
|
|
an interaction handler which should be used to fill all parameters which
|
|
cannot be filled by other means. May be <NULL/>
|
|
@param _rClearForNotifies
|
|
the mutex guard to be (temporarily) cleared for notifications
|
|
|
|
@precond
|
|
the instance is alive, i.e. <member>isAlive</member> returns <TRUE/>
|
|
|
|
@return
|
|
<TRUE/> if and only if the parameter filling has <em>not</em> been cancelled by the user
|
|
*/
|
|
bool fillParameterValues(
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& _rxCompletionHandler,
|
|
::osl::ResettableMutexGuard& _rClearForNotifies
|
|
);
|
|
|
|
/** sets all parameter values to null (via <member>XParameters::setNull</member>)
|
|
|
|
@precond
|
|
the instance is alive, i.e. <member>isAlive</member> returns <TRUE/>
|
|
*/
|
|
void setAllParametersNull() SAL_THROW( ( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) );
|
|
|
|
/** resets all detail columns which are, via a parameter, linked to a master column, to
|
|
the value of this master column.
|
|
|
|
For instance, if the database component is bound to a statement <code>SELECT * from invoice where inv_id = :cid</code>,
|
|
and there is <em>one</em> master-detail link from
|
|
|
|
@precond
|
|
the instance is alive, i.e. <member>isAlive</member> returns <TRUE/>
|
|
*/
|
|
void resetParameterValues() SAL_THROW(());
|
|
|
|
/** tells the object that it's database component is being disposed
|
|
|
|
The object then fires the <member>XEventListener::disposing</member> notification to
|
|
the parameter listeners
|
|
*/
|
|
void disposing( const ::com::sun::star::lang::EventObject& _rDisposingEvent );
|
|
|
|
/** adds the given listener to the list of parameter listeners
|
|
*/
|
|
void addParameterListener(
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener >& _rxListener
|
|
);
|
|
|
|
/** removes the given listener from the list of parameter listeners
|
|
*/
|
|
void removeParameterListener(
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener >& _rxListener
|
|
);
|
|
|
|
// XParameters equivalents
|
|
void setNull ( sal_Int32 _nIndex, sal_Int32 sqlType);
|
|
void setObjectNull ( sal_Int32 _nIndex, sal_Int32 sqlType, const OUString& typeName);
|
|
void setBoolean ( sal_Int32 _nIndex, bool x);
|
|
void setByte ( sal_Int32 _nIndex, sal_Int8 x);
|
|
void setShort ( sal_Int32 _nIndex, sal_Int16 x);
|
|
void setInt ( sal_Int32 _nIndex, sal_Int32 x);
|
|
void setLong ( sal_Int32 _nIndex, sal_Int64 x);
|
|
void setFloat ( sal_Int32 _nIndex, float x);
|
|
void setDouble ( sal_Int32 _nIndex, double x);
|
|
void setString ( sal_Int32 _nIndex, const OUString& x);
|
|
void setBytes ( sal_Int32 _nIndex, const ::com::sun::star::uno::Sequence< sal_Int8 >& x);
|
|
void setDate ( sal_Int32 _nIndex, const ::com::sun::star::util::Date& x);
|
|
void setTime ( sal_Int32 _nIndex, const ::com::sun::star::util::Time& x);
|
|
void setTimestamp ( sal_Int32 _nIndex, const ::com::sun::star::util::DateTime& x);
|
|
void setBinaryStream ( sal_Int32 _nIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream>& x, sal_Int32 length);
|
|
void setCharacterStream ( sal_Int32 _nIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream>& x, sal_Int32 length);
|
|
void setObject ( sal_Int32 _nIndex, const ::com::sun::star::uno::Any& x);
|
|
void setObjectWithInfo ( sal_Int32 _nIndex, const ::com::sun::star::uno::Any& x, sal_Int32 targetSqlType, sal_Int32 scale);
|
|
void setRef ( sal_Int32 _nIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef>& x);
|
|
void setBlob ( sal_Int32 _nIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob>& x);
|
|
void setClob ( sal_Int32 _nIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob>& x);
|
|
void setArray ( sal_Int32 _nIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray>& x);
|
|
void clearParameters();
|
|
|
|
private:
|
|
/// checkes whether the object is already initialized, and not yet disposed
|
|
inline bool isAlive() const { return m_xComponent.get().is() && m_xInnerParamUpdate.is(); }
|
|
|
|
/** creates a filter expression from a master-detail link where the detail denotes a column name
|
|
*/
|
|
OUString
|
|
createFilterConditionFromColumnLink(
|
|
const OUString& /* [in] */ _rMasterColumn,
|
|
const OUString& /* [in] */ _rDetailColumn,
|
|
OUString& /* [out] */ _rNewParamName
|
|
);
|
|
|
|
/** initializes our query composer, and the collection of inner parameter columns
|
|
|
|
@param _rxComponent
|
|
the database component to initialize from. Must not be <NULL/>
|
|
@return
|
|
<TRUE/> if and only if the initialization was successful
|
|
|
|
@postcond
|
|
if and only if <TRUE/> is returned, then <member>m_xInnerParamColumns</member> contains the collection of
|
|
inner parameters
|
|
*/
|
|
bool initializeComposerByComponent(
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxComponent
|
|
);
|
|
|
|
/** collects initial meta information about inner parameters (i.e. it initially fills
|
|
<member>m_aParameterInformation</member>).
|
|
|
|
@param _bSecondRun
|
|
if <TRUE/>, this is the second run, because we ourself previously extended the filter of
|
|
the RowSet
|
|
|
|
@precond
|
|
<member>m_xInnerParamColumns</member> is not <NULL/>
|
|
*/
|
|
void collectInnerParameters( bool _bSecondRun );
|
|
|
|
/** analyzes the master-detail links for our database component, and initializes m_aMasterFields and m_aDetailFields
|
|
|
|
@param _rFilterManager
|
|
the filter manager of the database component
|
|
@param _rColumnsInLinkDetails
|
|
will be set to <TRUE/> if and only if there were link pairs where the detail field denoted
|
|
a column name of our database component
|
|
|
|
@precond
|
|
the instance is alive, i.e. <member>isAlive</member> returns <TRUE/>
|
|
*/
|
|
void analyzeFieldLinks( FilterManager& _rFilterManager, bool& /* [out] */ _rColumnsInLinkDetails );
|
|
|
|
/** classifies the link pairs
|
|
|
|
@param _rxParentColumns
|
|
the columns of the parent database component
|
|
|
|
@param _rxColumns
|
|
the columns of our own database component
|
|
|
|
@param _out_rAdditionalFilterComponents
|
|
the additional filter components which are required for master-detail relationships where
|
|
the detail part denotes a column name. In such a case, an additional filter needs to be created,
|
|
containing a new parameter.
|
|
|
|
@precond
|
|
<member>m_aMasterFields</member> and <member>m_aDetailFields</member> have the same length
|
|
*/
|
|
void classifyLinks(
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& _rxParentColumns,
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& _rxColumns,
|
|
::std::vector< OUString >& _out_rAdditionalFilterComponents
|
|
) SAL_THROW(( ::com::sun::star::uno::Exception ));
|
|
|
|
/** finalizes our <member>m_pOuterParameters</member> so that it can be used for
|
|
external parameter listeners
|
|
|
|
@precond
|
|
<member>m_pOuterParameters</member> is <NULL/>
|
|
@precond
|
|
<member>m_xInnerParamUpdate</member> is not <NULL/>
|
|
*/
|
|
void createOuterParameters();
|
|
|
|
/** fills in the parameters values which result from the master-detail relationship
|
|
between the database component and its parent
|
|
|
|
@param _rxParentColumns
|
|
the columns of the parameter database component. Must not be <NULL/>
|
|
@precond
|
|
the instance is alive, i.e. <member>isAlive</member> returns <TRUE/>
|
|
*/
|
|
void fillLinkedParameters(
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& _rxParentColumns
|
|
);
|
|
|
|
/** completes all missing parameters via an interaction handler
|
|
|
|
@precond
|
|
the instance is alive, i.e. <member>isAlive</member> returns <TRUE/>
|
|
|
|
@return
|
|
<TRUE/> if and only if the parameter filling has <em>not</em> been cancelled by the user
|
|
*/
|
|
bool completeParameters(
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& _rxCompletionHandler,
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > _rxConnection
|
|
);
|
|
|
|
/** asks the parameter listeners to fill in final values
|
|
|
|
@precond
|
|
the instance is alive, i.e. <member>isAlive</member> returns <TRUE/>
|
|
|
|
@return
|
|
<TRUE/> if and only if the parameter filling has <em>not</em> been cancelled by the user
|
|
*/
|
|
bool consultParameterListeners( ::osl::ResettableMutexGuard& _rClearForNotifies );
|
|
|
|
/** mark an externally filled parameter asvisited
|
|
*/
|
|
void externalParameterVisited( sal_Int32 _nIndex );
|
|
|
|
private:
|
|
/** retrieves the columns of the parent database component
|
|
|
|
@precond
|
|
the instance is alive, i.e. <member>isAlive</member> returns <TRUE/>
|
|
@return
|
|
<TRUE/> if and only if the columns could be successfully retrieved
|
|
*/
|
|
bool getParentColumns(
|
|
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& /* [out] */ _out_rxParentColumns,
|
|
bool _bFromComposer
|
|
);
|
|
|
|
/** retrieves the columns of our database component
|
|
|
|
@param _bFromComposer
|
|
if <TRUE/>, the columns are obtained from the composer, else from the living database component itself
|
|
@return
|
|
<TRUE/> if and only if the columns could be successfully retrieved
|
|
*/
|
|
bool getColumns(
|
|
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& /* [out] */ _rxColumns,
|
|
bool _bFromComposer
|
|
) SAL_THROW(( ::com::sun::star::uno::Exception ));
|
|
|
|
/** retrieves the active connection of the database component
|
|
*/
|
|
bool getConnection(
|
|
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& /* [out] */ _rxConnection
|
|
);
|
|
|
|
/** caches some info about the connection of our database component
|
|
*/
|
|
void cacheConnectionInfo() SAL_THROW(( ));
|
|
|
|
private:
|
|
ParameterManager(); // never implemented
|
|
ParameterManager( const ParameterManager& ); // never implemented
|
|
ParameterManager& operator=( const ParameterManager& ); // never implemented
|
|
};
|
|
|
|
|
|
} // namespacefrm
|
|
|
|
|
|
#endif // INCLUDED_CONNECTIVITY_PARAMETERS_HXX
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|