summaryrefslogtreecommitdiff
path: root/extensions
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2013-05-31 15:30:37 +0200
committerNoel Grandin <noel@peralex.com>2013-06-03 10:00:02 +0200
commit2838b8eb5ead00780ed9ed9410abee8b8d53a9a4 (patch)
tree9adc985fafa8e87435546cee5e64aa6d83ef1fe3 /extensions
parent28e3aff576f06b0b02c7232da5d723e865b3c7ed (diff)
fdo#46808, Convert ComponentContext in connectivity,extension..
...modules. Change-Id: Ie61976dc12b514bb85ca42496c0d9173a1c56264
Diffstat (limited to 'extensions')
-rw-r--r--extensions/source/abpilot/abpfinalpage.cxx3
-rw-r--r--extensions/source/logging/consolehandler.cxx4
-rw-r--r--extensions/source/logging/csvformatter.cxx14
-rw-r--r--extensions/source/logging/filehandler.cxx8
-rw-r--r--extensions/source/logging/logger.cxx14
-rw-r--r--extensions/source/logging/loggerconfig.cxx15
-rw-r--r--extensions/source/logging/loggerconfig.hxx8
-rw-r--r--extensions/source/logging/plaintextformatter.cxx14
-rw-r--r--extensions/source/propctrlr/defaultforminspection.cxx8
-rw-r--r--extensions/source/propctrlr/defaultforminspection.hxx2
-rw-r--r--extensions/source/propctrlr/defaulthelpprovider.cxx9
-rw-r--r--extensions/source/propctrlr/defaulthelpprovider.hxx5
-rw-r--r--extensions/source/propctrlr/formcontroller.cxx2
-rw-r--r--extensions/source/propctrlr/inspectormodelbase.cxx3
-rw-r--r--extensions/source/propctrlr/inspectormodelbase.hxx5
-rw-r--r--extensions/source/propctrlr/objectinspectormodel.cxx8
16 files changed, 46 insertions, 76 deletions
diff --git a/extensions/source/abpilot/abpfinalpage.cxx b/extensions/source/abpilot/abpfinalpage.cxx
index a27798dab01b..0802f0ae4d61 100644
--- a/extensions/source/abpilot/abpfinalpage.cxx
+++ b/extensions/source/abpilot/abpfinalpage.cxx
@@ -26,7 +26,6 @@
#include <svl/filenotation.hxx>
#include <sfx2/docfilt.hxx>
#include <vcl/msgbox.hxx>
-#include <comphelper/componentcontext.hxx>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
//.........................................................................
@@ -56,7 +55,7 @@ namespace abp
,m_aNameLabel ( this, ModuleRes( FT_NAME_EXPL ) )
,m_aName ( this, ModuleRes( ET_DATASOURCENAME ) )
,m_aDuplicateNameError ( this, ModuleRes( FT_DUPLICATENAME ) )
- ,m_aLocationController( ::comphelper::ComponentContext( _pParent->getORB() ), m_aLocation, m_aBrowse )
+ ,m_aLocationController( _pParent->getORB(), m_aLocation, m_aBrowse )
{
FreeResource();
diff --git a/extensions/source/logging/consolehandler.cxx b/extensions/source/logging/consolehandler.cxx
index 58abbf8d6d42..9c162ee3f23b 100644
--- a/extensions/source/logging/consolehandler.cxx
+++ b/extensions/source/logging/consolehandler.cxx
@@ -30,8 +30,6 @@
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
-#include <comphelper/componentcontext.hxx>
-
#include <cppuhelper/compbase3.hxx>
#include <cppuhelper/basemutex.hxx>
@@ -73,7 +71,6 @@ namespace logging
,public ConsoleHandler_Base
{
private:
- ::comphelper::ComponentContext m_aContext;
LogHandlerHelper m_aHandlerHelper;
sal_Int32 m_nThreshold;
@@ -124,7 +121,6 @@ namespace logging
//--------------------------------------------------------------------
ConsoleHandler::ConsoleHandler( const Reference< XComponentContext >& _rxContext )
:ConsoleHandler_Base( m_aMutex )
- ,m_aContext( _rxContext )
,m_aHandlerHelper( _rxContext, m_aMutex, rBHelper )
,m_nThreshold( LogLevel::SEVERE )
{
diff --git a/extensions/source/logging/csvformatter.cxx b/extensions/source/logging/csvformatter.cxx
index 16d28106f661..c65624f49217 100644
--- a/extensions/source/logging/csvformatter.cxx
+++ b/extensions/source/logging/csvformatter.cxx
@@ -28,8 +28,6 @@
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <comphelper/componentcontext.hxx>
-
#include <cppuhelper/implbase2.hxx>
#include <rtl/ustrbuf.hxx>
@@ -65,7 +63,7 @@ namespace logging
static Reference< XInterface > Create( const Reference< XComponentContext >& context );
protected:
- CsvFormatter( const Reference< XComponentContext >& context );
+ CsvFormatter();
virtual ~CsvFormatter();
// XCsvLogFormatter
@@ -92,7 +90,6 @@ namespace logging
virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
private:
- ::comphelper::ComponentContext m_aContext;
::sal_Bool m_LogEventNo;
::sal_Bool m_LogThread;
::sal_Bool m_LogTimestamp;
@@ -156,9 +153,8 @@ namespace
//= CsvFormatter - implementation
namespace logging
{
- CsvFormatter::CsvFormatter( const Reference< XComponentContext >& context )
- :m_aContext( context ),
- m_LogEventNo(true),
+ CsvFormatter::CsvFormatter()
+ :m_LogEventNo(true),
m_LogThread(true),
m_LogTimestamp(true),
m_LogSource(false),
@@ -349,9 +345,9 @@ namespace logging
return aServiceNames;
}
- Reference< XInterface > CsvFormatter::Create( const Reference< XComponentContext >& context )
+ Reference< XInterface > CsvFormatter::Create( const Reference< XComponentContext >& )
{
- return *( new CsvFormatter( context ) );
+ return *( new CsvFormatter );
}
void createRegistryInfo_CsvFormatter()
diff --git a/extensions/source/logging/filehandler.cxx b/extensions/source/logging/filehandler.cxx
index f4df55a03a80..93a4e71a007b 100644
--- a/extensions/source/logging/filehandler.cxx
+++ b/extensions/source/logging/filehandler.cxx
@@ -32,8 +32,6 @@
#include <tools/diagnose_ex.h>
-#include <comphelper/componentcontext.hxx>
-
#include <cppuhelper/compbase3.hxx>
#include <cppuhelper/basemutex.hxx>
@@ -90,7 +88,7 @@ namespace logging
};
private:
- ::comphelper::ComponentContext m_aContext;
+ Reference<XComponentContext> m_xContext;
LogHandlerHelper m_aHandlerHelper;
OUString m_sFileURL;
::std::auto_ptr< ::osl::File > m_pFile;
@@ -151,7 +149,7 @@ namespace logging
//--------------------------------------------------------------------
FileHandler::FileHandler( const Reference< XComponentContext >& _rxContext )
:FileHandler_Base( m_aMutex )
- ,m_aContext( _rxContext )
+ ,m_xContext( _rxContext )
,m_aHandlerHelper( _rxContext, m_aMutex, rBHelper )
,m_sFileURL( )
,m_pFile( )
@@ -229,7 +227,7 @@ namespace logging
{
try
{
- Reference< XStringSubstitution > xStringSubst(PathSubstitution::create(m_aContext.getUNOContext()));
+ Reference< XStringSubstitution > xStringSubst(PathSubstitution::create(m_xContext));
_inout_rURL = xStringSubst->substituteVariables( _inout_rURL, true );
}
catch( const Exception& )
diff --git a/extensions/source/logging/logger.cxx b/extensions/source/logging/logger.cxx
index dc82f16ba00d..bf678f3a59e9 100644
--- a/extensions/source/logging/logger.cxx
+++ b/extensions/source/logging/logger.cxx
@@ -28,8 +28,6 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/logging/XLoggerPool.hpp>
-#include <comphelper/componentcontext.hxx>
-
#include <cppuhelper/basemutex.hxx>
#include <cppuhelper/interfacecontainer.hxx>
#include <cppuhelper/implbase2.hxx>
@@ -89,7 +87,6 @@ namespace logging
,public EventLogger_Base
{
private:
- ::comphelper::ComponentContext m_aContext;
::cppu::OInterfaceContainerHelper m_aHandlers;
oslInterlockedCount m_nEventNumber;
@@ -145,7 +142,7 @@ namespace logging
private:
::osl::Mutex m_aMutex;
- ::comphelper::ComponentContext m_aContext;
+ Reference<XComponentContext> m_xContext;
ImplPool m_aImpl;
public:
@@ -172,15 +169,14 @@ namespace logging
//====================================================================
//--------------------------------------------------------------------
EventLogger::EventLogger( const Reference< XComponentContext >& _rxContext, const OUString& _rName )
- :m_aContext( _rxContext )
- ,m_aHandlers( m_aMutex )
+ :m_aHandlers( m_aMutex )
,m_nEventNumber( 0 )
,m_nLogLevel( LogLevel::OFF )
,m_sName( _rName )
{
osl_atomic_increment( &m_refCount );
{
- initializeLoggerFromConfiguration( m_aContext, this );
+ initializeLoggerFromConfiguration( _rxContext, this );
}
osl_atomic_decrement( &m_refCount );
}
@@ -306,7 +302,7 @@ namespace logging
//====================================================================
//--------------------------------------------------------------------
LoggerPool::LoggerPool( const Reference< XComponentContext >& _rxContext )
- :m_aContext( _rxContext )
+ :m_xContext( _rxContext )
{
}
@@ -364,7 +360,7 @@ namespace logging
if ( !xLogger.is() )
{
// never requested before, or already dead
- xLogger = new EventLogger( m_aContext.getUNOContext(), _rName );
+ xLogger = new EventLogger( m_xContext, _rName );
rLogger = xLogger;
}
diff --git a/extensions/source/logging/loggerconfig.cxx b/extensions/source/logging/loggerconfig.cxx
index dae01ef2f96c..8bef4db3a7dd 100644
--- a/extensions/source/logging/loggerconfig.cxx
+++ b/extensions/source/logging/loggerconfig.cxx
@@ -37,8 +37,6 @@
#include <osl/process.h>
#include <rtl/ustrbuf.hxx>
-#include <comphelper/componentcontext.hxx>
-
#include <cppuhelper/component_context.hxx>
#include <vector>
@@ -174,7 +172,7 @@ namespace logging
//----------------------------------------------------------------
Reference< XInterface > lcl_createInstanceFromSetting_throw(
- const ::comphelper::ComponentContext& _rContext,
+ const Reference<XComponentContext>& _rContext,
const Reference< XLogger >& _rxLogger,
const Reference< XNameAccess >& _rxLoggerSettings,
const sal_Char* _pServiceNameAsciiNodeName,
@@ -219,11 +217,13 @@ namespace logging
{
Sequence< Any > aConstructionArgs(1);
aConstructionArgs[0] <<= aSettings;
- bSuccess = _rContext.createComponentWithArguments( sServiceName, aConstructionArgs, xInstance );
+ xInstance = _rContext->getServiceManager()->createInstanceWithArgumentsAndContext(sServiceName, aConstructionArgs, _rContext);
+ bSuccess = xInstance.is();
}
else
{
- bSuccess = _rContext.createComponent( sServiceName, xInstance );
+ xInstance = _rContext->getServiceManager()->createInstanceWithContext(sServiceName, _rContext);
+ bSuccess = xInstance.is();
}
if ( !bSuccess )
@@ -235,7 +235,7 @@ namespace logging
}
//--------------------------------------------------------------------
- void initializeLoggerFromConfiguration( const ::comphelper::ComponentContext& _rContext, const Reference< XLogger >& _rxLogger )
+ void initializeLoggerFromConfiguration( const Reference<XComponentContext>& _rContext, const Reference< XLogger >& _rxLogger )
{
try
{
@@ -243,8 +243,7 @@ namespace logging
throw NullPointerException();
Reference< XMultiServiceFactory > xConfigProvider(
- com::sun::star::configuration::theDefaultProvider::get(
- _rContext.getUNOContext()));
+ com::sun::star::configuration::theDefaultProvider::get(_rContext));
// write access to the "Settings" node (which includes settings for all loggers)
Sequence< Any > aArguments(1);
diff --git a/extensions/source/logging/loggerconfig.hxx b/extensions/source/logging/loggerconfig.hxx
index 3697ac3dbbdd..5b7c9085db64 100644
--- a/extensions/source/logging/loggerconfig.hxx
+++ b/extensions/source/logging/loggerconfig.hxx
@@ -21,11 +21,7 @@
#define EXTENSIONS_LOGGERCONFIG_HXX
#include <com/sun/star/logging/XLogger.hpp>
-
-namespace comphelper
-{
- class ComponentContext;
-}
+#include <com/sun/star/uno/XComponentContext.hpp>
//........................................................................
namespace logging
@@ -44,7 +40,7 @@ namespace logging
run, be moved to the logger implementation - not sure if it's the best place.
*/
void initializeLoggerFromConfiguration(
- const ::comphelper::ComponentContext& _rContext,
+ const css::uno::Reference<css::uno::XComponentContext>& _rContext,
const ::com::sun::star::uno::Reference< ::com::sun::star::logging::XLogger >& _rxLogger
);
diff --git a/extensions/source/logging/plaintextformatter.cxx b/extensions/source/logging/plaintextformatter.cxx
index 7ce48752cc85..35b01a6970fd 100644
--- a/extensions/source/logging/plaintextformatter.cxx
+++ b/extensions/source/logging/plaintextformatter.cxx
@@ -26,8 +26,6 @@
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <comphelper/componentcontext.hxx>
-
#include <cppuhelper/implbase2.hxx>
#include <rtl/ustrbuf.hxx>
@@ -56,11 +54,8 @@ namespace logging
> PlainTextFormatter_Base;
class PlainTextFormatter : public PlainTextFormatter_Base
{
- private:
- ::comphelper::ComponentContext m_aContext;
-
protected:
- PlainTextFormatter( const Reference< XComponentContext >& _rxContext );
+ PlainTextFormatter();
virtual ~PlainTextFormatter();
// XLogFormatter
@@ -84,8 +79,7 @@ namespace logging
//= PlainTextFormatter - implementation
//====================================================================
//--------------------------------------------------------------------
- PlainTextFormatter::PlainTextFormatter( const Reference< XComponentContext >& _rxContext )
- :m_aContext( _rxContext )
+ PlainTextFormatter::PlainTextFormatter()
{
}
@@ -196,9 +190,9 @@ namespace logging
}
//--------------------------------------------------------------------
- Reference< XInterface > PlainTextFormatter::Create( const Reference< XComponentContext >& _rxContext )
+ Reference< XInterface > PlainTextFormatter::Create( const Reference< XComponentContext >& )
{
- return *( new PlainTextFormatter( _rxContext ) );
+ return *( new PlainTextFormatter );
}
//--------------------------------------------------------------------
diff --git a/extensions/source/propctrlr/defaultforminspection.cxx b/extensions/source/propctrlr/defaultforminspection.cxx
index 7fb4906752b4..c5346473d0b4 100644
--- a/extensions/source/propctrlr/defaultforminspection.cxx
+++ b/extensions/source/propctrlr/defaultforminspection.cxx
@@ -59,8 +59,8 @@ namespace pcr
//= DefaultFormComponentInspectorModel
//====================================================================
//--------------------------------------------------------------------
- DefaultFormComponentInspectorModel::DefaultFormComponentInspectorModel( const Reference< XComponentContext >& _rxContext, bool _bUseFormFormComponentHandlers )
- :ImplInspectorModel( _rxContext )
+ DefaultFormComponentInspectorModel::DefaultFormComponentInspectorModel( bool _bUseFormFormComponentHandlers )
+ :ImplInspectorModel()
,m_bUseFormComponentHandlers( _bUseFormFormComponentHandlers )
,m_bConstructed( false )
,m_pInfoService( new OPropertyInfoService )
@@ -99,9 +99,9 @@ namespace pcr
}
//------------------------------------------------------------------------
- Reference< XInterface > SAL_CALL DefaultFormComponentInspectorModel::Create( const Reference< XComponentContext >& _rxContext )
+ Reference< XInterface > SAL_CALL DefaultFormComponentInspectorModel::Create( const Reference< XComponentContext >& )
{
- return *new DefaultFormComponentInspectorModel( _rxContext );
+ return *new DefaultFormComponentInspectorModel();
}
//--------------------------------------------------------------------
diff --git a/extensions/source/propctrlr/defaultforminspection.hxx b/extensions/source/propctrlr/defaultforminspection.hxx
index 543de989a440..f167be67aa4e 100644
--- a/extensions/source/propctrlr/defaultforminspection.hxx
+++ b/extensions/source/propctrlr/defaultforminspection.hxx
@@ -66,7 +66,7 @@ namespace pcr
Create(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >&);
public:
- DefaultFormComponentInspectorModel( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext, bool _bUseFormFormComponentHandlers = true );
+ DefaultFormComponentInspectorModel( bool _bUseFormFormComponentHandlers = true );
protected:
// Service constructors
diff --git a/extensions/source/propctrlr/defaulthelpprovider.cxx b/extensions/source/propctrlr/defaulthelpprovider.cxx
index 695159f15667..72ddb86a8fd7 100644
--- a/extensions/source/propctrlr/defaulthelpprovider.cxx
+++ b/extensions/source/propctrlr/defaulthelpprovider.cxx
@@ -61,9 +61,8 @@ namespace pcr
//= DefaultHelpProvider
//====================================================================
//--------------------------------------------------------------------
- DefaultHelpProvider::DefaultHelpProvider( const Reference< XComponentContext >& _rxContext )
- :m_aContext( _rxContext )
- ,m_bConstructed( false )
+ DefaultHelpProvider::DefaultHelpProvider()
+ :m_bConstructed( false )
{
}
@@ -87,9 +86,9 @@ namespace pcr
}
//------------------------------------------------------------------------
- Reference< XInterface > SAL_CALL DefaultHelpProvider::Create( const Reference< XComponentContext >& _rxContext )
+ Reference< XInterface > SAL_CALL DefaultHelpProvider::Create( const Reference< XComponentContext >& )
{
- return *new DefaultHelpProvider( _rxContext );
+ return *new DefaultHelpProvider;
}
//--------------------------------------------------------------------
diff --git a/extensions/source/propctrlr/defaulthelpprovider.hxx b/extensions/source/propctrlr/defaulthelpprovider.hxx
index 3d8ee8060d63..8994593ae25d 100644
--- a/extensions/source/propctrlr/defaulthelpprovider.hxx
+++ b/extensions/source/propctrlr/defaulthelpprovider.hxx
@@ -23,9 +23,9 @@
#include <com/sun/star/inspection/XPropertyControlObserver.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/inspection/XObjectInspectorUI.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
#include <cppuhelper/implbase2.hxx>
-#include <comphelper/componentcontext.hxx>
class Window;
@@ -43,13 +43,12 @@ namespace pcr
class DefaultHelpProvider : public DefaultHelpProvider_Base
{
private:
- ::comphelper::ComponentContext m_aContext;
bool m_bConstructed;
::com::sun::star::uno::Reference< ::com::sun::star::inspection::XObjectInspectorUI >
m_xInspectorUI;
public:
- DefaultHelpProvider( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext );
+ DefaultHelpProvider();
// XServiceInfo - static versions
static OUString getImplementationName_static( ) throw(::com::sun::star::uno::RuntimeException);
diff --git a/extensions/source/propctrlr/formcontroller.cxx b/extensions/source/propctrlr/formcontroller.cxx
index 732c639aab5f..3a9c9ba19534 100644
--- a/extensions/source/propctrlr/formcontroller.cxx
+++ b/extensions/source/propctrlr/formcontroller.cxx
@@ -82,7 +82,7 @@ namespace pcr
osl_atomic_increment( &m_refCount );
{
Reference< XObjectInspectorModel > xModel(
- *(new DefaultFormComponentInspectorModel( _rxContext, _bUseFormFormComponentHandlers )),
+ *(new DefaultFormComponentInspectorModel( _bUseFormFormComponentHandlers )),
UNO_QUERY_THROW
);
setInspectorModel( xModel );
diff --git a/extensions/source/propctrlr/inspectormodelbase.cxx b/extensions/source/propctrlr/inspectormodelbase.cxx
index d8ebe0780ec0..5c6f21ebd316 100644
--- a/extensions/source/propctrlr/inspectormodelbase.cxx
+++ b/extensions/source/propctrlr/inspectormodelbase.cxx
@@ -156,9 +156,8 @@ namespace pcr
//====================================================================
//= ImplInspectorModel
//====================================================================
- ImplInspectorModel::ImplInspectorModel( const Reference< XComponentContext >& _rxContext )
+ ImplInspectorModel::ImplInspectorModel()
:ImplInspectorModel_PBase( GetBroadcastHelper() )
- ,m_aContext( _rxContext )
,m_pProperties( new InspectorModelProperties( m_aMutex ) )
{
}
diff --git a/extensions/source/propctrlr/inspectormodelbase.hxx b/extensions/source/propctrlr/inspectormodelbase.hxx
index bc12d78a7069..86a8caca7d2b 100644
--- a/extensions/source/propctrlr/inspectormodelbase.hxx
+++ b/extensions/source/propctrlr/inspectormodelbase.hxx
@@ -23,12 +23,12 @@
#include <com/sun/star/inspection/XObjectInspectorModel.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
#include <cppuhelper/implbase3.hxx>
#include <cppuhelper/propshlp.hxx>
#include <comphelper/broadcasthelper.hxx>
-#include <comphelper/componentcontext.hxx>
#include <comphelper/uno3.hxx>
#include <memory>
@@ -54,14 +54,13 @@ namespace pcr
,public ImplInspectorModel_PBase
{
protected:
- ::comphelper::ComponentContext m_aContext;
::std::auto_ptr< InspectorModelProperties > m_pProperties;
protected:
~ImplInspectorModel();
public:
- ImplInspectorModel( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext );
+ ImplInspectorModel();
DECLARE_XINTERFACE()
DECLARE_XTYPEPROVIDER()
diff --git a/extensions/source/propctrlr/objectinspectormodel.cxx b/extensions/source/propctrlr/objectinspectormodel.cxx
index edd9f883f3cd..d9868d397dc4 100644
--- a/extensions/source/propctrlr/objectinspectormodel.cxx
+++ b/extensions/source/propctrlr/objectinspectormodel.cxx
@@ -59,7 +59,7 @@ namespace pcr
Sequence< Any > m_aFactories;
public:
- ObjectInspectorModel( const Reference< XComponentContext >& _rxContext );
+ ObjectInspectorModel();
// XObjectInspectorModel
virtual Sequence< Any > SAL_CALL getHandlerFactories() throw (RuntimeException);
@@ -93,8 +93,8 @@ namespace pcr
//====================================================================
//= ObjectInspectorModel
//====================================================================
- ObjectInspectorModel::ObjectInspectorModel( const Reference< XComponentContext >& _rxContext )
- :ImplInspectorModel( _rxContext )
+ ObjectInspectorModel::ObjectInspectorModel()
+ :ImplInspectorModel()
{
}
@@ -181,7 +181,7 @@ namespace pcr
//--------------------------------------------------------------------
Reference< XInterface > SAL_CALL ObjectInspectorModel::Create(const Reference< XComponentContext >& _rxContext )
{
- return *( new ObjectInspectorModel( _rxContext ) );
+ return *( new ObjectInspectorModel() );
}
//--------------------------------------------------------------------