xref: /aoo4110/main/ucb/source/core/cmdenv.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_ucb.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "cppuhelper/factory.hxx"
28*b1cdbd2cSJim Jagielski #include "com/sun/star/lang/IllegalArgumentException.hpp"
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski #include "cmdenv.hxx"
31*b1cdbd2cSJim Jagielski 
32*b1cdbd2cSJim Jagielski /**************************************************************************
33*b1cdbd2cSJim Jagielski                                 TODO
34*b1cdbd2cSJim Jagielski  **************************************************************************
35*b1cdbd2cSJim Jagielski 
36*b1cdbd2cSJim Jagielski  *************************************************************************/
37*b1cdbd2cSJim Jagielski using namespace com::sun::star;
38*b1cdbd2cSJim Jagielski using namespace ucb_cmdenv;
39*b1cdbd2cSJim Jagielski 
40*b1cdbd2cSJim Jagielski //=========================================================================
41*b1cdbd2cSJim Jagielski //=========================================================================
42*b1cdbd2cSJim Jagielski //
43*b1cdbd2cSJim Jagielski // UcbCommandEnvironment Implementation.
44*b1cdbd2cSJim Jagielski //
45*b1cdbd2cSJim Jagielski //=========================================================================
46*b1cdbd2cSJim Jagielski //=========================================================================
47*b1cdbd2cSJim Jagielski 
UcbCommandEnvironment(const uno::Reference<lang::XMultiServiceFactory> &)48*b1cdbd2cSJim Jagielski UcbCommandEnvironment::UcbCommandEnvironment(
49*b1cdbd2cSJim Jagielski     const uno::Reference< lang::XMultiServiceFactory >& /*xSMgr*/ )
50*b1cdbd2cSJim Jagielski //: m_xSMgr( xSMgr )
51*b1cdbd2cSJim Jagielski {
52*b1cdbd2cSJim Jagielski }
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski //=========================================================================
55*b1cdbd2cSJim Jagielski // virtual
~UcbCommandEnvironment()56*b1cdbd2cSJim Jagielski UcbCommandEnvironment::~UcbCommandEnvironment()
57*b1cdbd2cSJim Jagielski {
58*b1cdbd2cSJim Jagielski }
59*b1cdbd2cSJim Jagielski 
60*b1cdbd2cSJim Jagielski //=========================================================================
61*b1cdbd2cSJim Jagielski //
62*b1cdbd2cSJim Jagielski // XInitialization methods.
63*b1cdbd2cSJim Jagielski //
64*b1cdbd2cSJim Jagielski //=========================================================================
65*b1cdbd2cSJim Jagielski 
66*b1cdbd2cSJim Jagielski // virtual
initialize(const uno::Sequence<uno::Any> & aArguments)67*b1cdbd2cSJim Jagielski void SAL_CALL UcbCommandEnvironment::initialize(
68*b1cdbd2cSJim Jagielski         const uno::Sequence< uno::Any >& aArguments )
69*b1cdbd2cSJim Jagielski     throw( uno::Exception,
70*b1cdbd2cSJim Jagielski            uno::RuntimeException )
71*b1cdbd2cSJim Jagielski {
72*b1cdbd2cSJim Jagielski     if ( ( aArguments.getLength() < 2 ) ||
73*b1cdbd2cSJim Jagielski          !( aArguments[ 0 ] >>= m_xIH ) ||
74*b1cdbd2cSJim Jagielski          !( aArguments[ 1 ] >>= m_xPH ))
75*b1cdbd2cSJim Jagielski         throw lang::IllegalArgumentException();
76*b1cdbd2cSJim Jagielski }
77*b1cdbd2cSJim Jagielski 
78*b1cdbd2cSJim Jagielski //=========================================================================
79*b1cdbd2cSJim Jagielski //
80*b1cdbd2cSJim Jagielski // XServiceInfo methods.
81*b1cdbd2cSJim Jagielski //
82*b1cdbd2cSJim Jagielski //=========================================================================
83*b1cdbd2cSJim Jagielski 
84*b1cdbd2cSJim Jagielski // virtual
getImplementationName()85*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL UcbCommandEnvironment::getImplementationName()
86*b1cdbd2cSJim Jagielski     throw ( uno::RuntimeException )
87*b1cdbd2cSJim Jagielski {
88*b1cdbd2cSJim Jagielski     return getImplementationName_Static();
89*b1cdbd2cSJim Jagielski }
90*b1cdbd2cSJim Jagielski 
91*b1cdbd2cSJim Jagielski //=========================================================================
92*b1cdbd2cSJim Jagielski // virtual
93*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL
supportsService(const::rtl::OUString & ServiceName)94*b1cdbd2cSJim Jagielski UcbCommandEnvironment::supportsService( const ::rtl::OUString& ServiceName )
95*b1cdbd2cSJim Jagielski     throw ( uno::RuntimeException )
96*b1cdbd2cSJim Jagielski {
97*b1cdbd2cSJim Jagielski     uno::Sequence< rtl::OUString > aSNL = getSupportedServiceNames();
98*b1cdbd2cSJim Jagielski     const rtl::OUString * pArray = aSNL.getConstArray();
99*b1cdbd2cSJim Jagielski     for ( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
100*b1cdbd2cSJim Jagielski     {
101*b1cdbd2cSJim Jagielski         if ( pArray[ i ] == ServiceName )
102*b1cdbd2cSJim Jagielski             return sal_True;
103*b1cdbd2cSJim Jagielski     }
104*b1cdbd2cSJim Jagielski     return sal_False;
105*b1cdbd2cSJim Jagielski }
106*b1cdbd2cSJim Jagielski 
107*b1cdbd2cSJim Jagielski //=========================================================================
108*b1cdbd2cSJim Jagielski // virtual
109*b1cdbd2cSJim Jagielski uno::Sequence< ::rtl::OUString > SAL_CALL
getSupportedServiceNames()110*b1cdbd2cSJim Jagielski UcbCommandEnvironment::getSupportedServiceNames()
111*b1cdbd2cSJim Jagielski     throw ( uno::RuntimeException )
112*b1cdbd2cSJim Jagielski {
113*b1cdbd2cSJim Jagielski     return getSupportedServiceNames_Static();
114*b1cdbd2cSJim Jagielski }
115*b1cdbd2cSJim Jagielski 
116*b1cdbd2cSJim Jagielski //=========================================================================
117*b1cdbd2cSJim Jagielski // static
getImplementationName_Static()118*b1cdbd2cSJim Jagielski rtl::OUString UcbCommandEnvironment::getImplementationName_Static()
119*b1cdbd2cSJim Jagielski {
120*b1cdbd2cSJim Jagielski     return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
121*b1cdbd2cSJim Jagielski         "com.sun.star.comp.ucb.CommandEnvironment" ) );
122*b1cdbd2cSJim Jagielski }
123*b1cdbd2cSJim Jagielski 
124*b1cdbd2cSJim Jagielski //=========================================================================
125*b1cdbd2cSJim Jagielski // static
126*b1cdbd2cSJim Jagielski uno::Sequence< rtl::OUString >
getSupportedServiceNames_Static()127*b1cdbd2cSJim Jagielski UcbCommandEnvironment::getSupportedServiceNames_Static()
128*b1cdbd2cSJim Jagielski {
129*b1cdbd2cSJim Jagielski     uno::Sequence< rtl::OUString > aSNS( 1 );
130*b1cdbd2cSJim Jagielski     aSNS.getArray()[ 0 ]
131*b1cdbd2cSJim Jagielski         = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
132*b1cdbd2cSJim Jagielski             "com.sun.star.ucb.CommandEnvironment" ) );
133*b1cdbd2cSJim Jagielski     return aSNS;
134*b1cdbd2cSJim Jagielski }
135*b1cdbd2cSJim Jagielski 
136*b1cdbd2cSJim Jagielski //=========================================================================
137*b1cdbd2cSJim Jagielski //
138*b1cdbd2cSJim Jagielski // XCommandInfo methods.
139*b1cdbd2cSJim Jagielski //
140*b1cdbd2cSJim Jagielski //=========================================================================
141*b1cdbd2cSJim Jagielski 
142*b1cdbd2cSJim Jagielski // virtual
143*b1cdbd2cSJim Jagielski uno::Reference< task::XInteractionHandler > SAL_CALL
getInteractionHandler()144*b1cdbd2cSJim Jagielski UcbCommandEnvironment::getInteractionHandler()
145*b1cdbd2cSJim Jagielski     throw ( uno::RuntimeException )
146*b1cdbd2cSJim Jagielski {
147*b1cdbd2cSJim Jagielski     return m_xIH;
148*b1cdbd2cSJim Jagielski }
149*b1cdbd2cSJim Jagielski 
150*b1cdbd2cSJim Jagielski //=========================================================================
151*b1cdbd2cSJim Jagielski // virtual
152*b1cdbd2cSJim Jagielski uno::Reference< ucb::XProgressHandler > SAL_CALL
getProgressHandler()153*b1cdbd2cSJim Jagielski UcbCommandEnvironment::getProgressHandler()
154*b1cdbd2cSJim Jagielski     throw ( uno::RuntimeException )
155*b1cdbd2cSJim Jagielski {
156*b1cdbd2cSJim Jagielski     return m_xPH;
157*b1cdbd2cSJim Jagielski }
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski //=========================================================================
160*b1cdbd2cSJim Jagielski //
161*b1cdbd2cSJim Jagielski // Service factory implementation.
162*b1cdbd2cSJim Jagielski //
163*b1cdbd2cSJim Jagielski //=========================================================================
164*b1cdbd2cSJim Jagielski 
165*b1cdbd2cSJim Jagielski static uno::Reference< uno::XInterface > SAL_CALL
UcbCommandEnvironment_CreateInstance(const uno::Reference<lang::XMultiServiceFactory> & rSMgr)166*b1cdbd2cSJim Jagielski UcbCommandEnvironment_CreateInstance(
167*b1cdbd2cSJim Jagielski     const uno::Reference< lang::XMultiServiceFactory> & rSMgr )
168*b1cdbd2cSJim Jagielski     throw( uno::Exception )
169*b1cdbd2cSJim Jagielski {
170*b1cdbd2cSJim Jagielski     lang::XServiceInfo * pX = static_cast< lang::XServiceInfo * >(
171*b1cdbd2cSJim Jagielski         new UcbCommandEnvironment( rSMgr ) );
172*b1cdbd2cSJim Jagielski     return uno::Reference< uno::XInterface >::query( pX );
173*b1cdbd2cSJim Jagielski }
174*b1cdbd2cSJim Jagielski 
175*b1cdbd2cSJim Jagielski //=========================================================================
176*b1cdbd2cSJim Jagielski // static
177*b1cdbd2cSJim Jagielski uno::Reference< lang::XSingleServiceFactory >
createServiceFactory(const uno::Reference<lang::XMultiServiceFactory> & rxServiceMgr)178*b1cdbd2cSJim Jagielski UcbCommandEnvironment::createServiceFactory(
179*b1cdbd2cSJim Jagielski     const uno::Reference< lang::XMultiServiceFactory >& rxServiceMgr )
180*b1cdbd2cSJim Jagielski {
181*b1cdbd2cSJim Jagielski     return uno::Reference< lang::XSingleServiceFactory >(
182*b1cdbd2cSJim Jagielski             cppu::createSingleFactory(
183*b1cdbd2cSJim Jagielski                 rxServiceMgr,
184*b1cdbd2cSJim Jagielski                 UcbCommandEnvironment::getImplementationName_Static(),
185*b1cdbd2cSJim Jagielski                 UcbCommandEnvironment_CreateInstance,
186*b1cdbd2cSJim Jagielski                 UcbCommandEnvironment::getSupportedServiceNames_Static() ) );
187*b1cdbd2cSJim Jagielski }
188