1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
21 /**************************************************************************
23 **************************************************************************
25 *************************************************************************/
26 #include <ucbhelper/interactionrequest.hxx>
28 #include <rtl/ref.hxx>
29 #include <osl/diagnose.h>
30 #include <cppuhelper/typeprovider.hxx>
31 #include <cppuhelper/queryinterface.hxx>
33 using namespace com::sun::star
;
34 using namespace ucbhelper
;
37 // InteractionRequest Implementation.
43 struct InteractionRequest_Impl
45 rtl::Reference
< InteractionContinuation
> m_xSelection
;
46 css::uno::Any m_aRequest
;
49 css::task::XInteractionContinuation
> > m_aContinuations
;
51 InteractionRequest_Impl() {}
52 explicit InteractionRequest_Impl( const uno::Any
& rRequest
)
53 : m_aRequest( rRequest
) {}
59 InteractionRequest::InteractionRequest()
60 : m_pImpl( new InteractionRequest_Impl
)
65 InteractionRequest::InteractionRequest( const uno::Any
& rRequest
)
66 : m_pImpl( new InteractionRequest_Impl( rRequest
) )
72 InteractionRequest::~InteractionRequest()
77 void InteractionRequest::setRequest( const uno::Any
& rRequest
)
79 m_pImpl
->m_aRequest
= rRequest
;
83 void InteractionRequest::setContinuations(
84 const uno::Sequence
< uno::Reference
<
85 task::XInteractionContinuation
> > & rContinuations
)
87 m_pImpl
->m_aContinuations
= rContinuations
;
91 rtl::Reference
< InteractionContinuation
> const &
92 InteractionRequest::getSelection() const
94 return m_pImpl
->m_xSelection
;
98 void InteractionRequest::setSelection(
99 const rtl::Reference
< InteractionContinuation
> & rxSelection
)
101 m_pImpl
->m_xSelection
= rxSelection
;
105 // XInterface methods.
108 // XInteractionRequest methods.
112 uno::Any SAL_CALL
InteractionRequest::getRequest()
114 return m_pImpl
->m_aRequest
;
119 uno::Sequence
< uno::Reference
< task::XInteractionContinuation
> > SAL_CALL
120 InteractionRequest::getContinuations()
122 return m_pImpl
->m_aContinuations
;
126 // InteractionContinuation Implementation.
129 InteractionContinuation::InteractionContinuation(
130 InteractionRequest
* pRequest
)
131 : m_pRequest( pRequest
)
137 InteractionContinuation::~InteractionContinuation()
142 void InteractionContinuation::recordSelection()
144 m_pRequest
->setSelection( this );
148 // InteractionAbort Implementation.
151 // XInterface methods.
156 InteractionAbort::queryInterface( const uno::Type
& rType
)
158 uno::Any aRet
= cppu::queryInterface( rType
,
159 static_cast< lang::XTypeProvider
* >( this ),
160 static_cast< task::XInteractionContinuation
* >( this ),
161 static_cast< task::XInteractionAbort
* >( this ) );
163 return aRet
.hasValue()
164 ? aRet
: InteractionContinuation::queryInterface( rType
);
168 // XTypeProvider methods.
172 uno::Sequence
< sal_Int8
> SAL_CALL
InteractionAbort::getImplementationId()
174 return css::uno::Sequence
<sal_Int8
>();
179 uno::Sequence
< uno::Type
> SAL_CALL
InteractionAbort::getTypes()
181 static cppu::OTypeCollection
s_aCollection(
182 cppu::UnoType
<lang::XTypeProvider
>::get(),
183 cppu::UnoType
<task::XInteractionAbort
>::get() );
185 return s_aCollection
.getTypes();
189 // XInteractionContinuation methods.
193 void SAL_CALL
InteractionAbort::select()
199 // InteractionRetry Implementation.
202 // XInterface methods.
207 InteractionRetry::queryInterface( const uno::Type
& rType
)
209 uno::Any aRet
= cppu::queryInterface( rType
,
210 static_cast< lang::XTypeProvider
* >( this ),
211 static_cast< task::XInteractionContinuation
* >( this ),
212 static_cast< task::XInteractionRetry
* >( this ) );
214 return aRet
.hasValue()
215 ? aRet
: InteractionContinuation::queryInterface( rType
);
219 // XTypeProvider methods.
223 uno::Sequence
< sal_Int8
> SAL_CALL
InteractionRetry::getImplementationId()
225 return css::uno::Sequence
<sal_Int8
>();
230 uno::Sequence
< uno::Type
> SAL_CALL
InteractionRetry::getTypes()
232 static cppu::OTypeCollection
s_aCollection(
233 cppu::UnoType
<lang::XTypeProvider
>::get(),
234 cppu::UnoType
<task::XInteractionRetry
>::get() );
236 return s_aCollection
.getTypes();
240 // XInteractionContinuation methods.
244 void SAL_CALL
InteractionRetry::select()
250 // InteractionApprove Implementation.
253 // XInterface methods.
258 InteractionApprove::queryInterface( const uno::Type
& rType
)
260 uno::Any aRet
= cppu::queryInterface( rType
,
261 static_cast< lang::XTypeProvider
* >( this ),
262 static_cast< task::XInteractionContinuation
* >( this ),
263 static_cast< task::XInteractionApprove
* >( this ) );
265 return aRet
.hasValue()
266 ? aRet
: InteractionContinuation::queryInterface( rType
);
270 // XTypeProvider methods.
274 uno::Sequence
< sal_Int8
> SAL_CALL
InteractionApprove::getImplementationId()
276 return css::uno::Sequence
<sal_Int8
>();
281 uno::Sequence
< uno::Type
> SAL_CALL
InteractionApprove::getTypes()
283 static cppu::OTypeCollection
s_aCollection(
284 cppu::UnoType
<lang::XTypeProvider
>::get(),
285 cppu::UnoType
<task::XInteractionApprove
>::get() );
287 return s_aCollection
.getTypes();
291 // XInteractionContinuation methods.
295 void SAL_CALL
InteractionApprove::select()
301 // InteractionDisapprove Implementation.
304 // XInterface methods.
309 InteractionDisapprove::queryInterface( const uno::Type
& rType
)
311 uno::Any aRet
= cppu::queryInterface( rType
,
312 static_cast< lang::XTypeProvider
* >( this ),
313 static_cast< task::XInteractionContinuation
* >( this ),
314 static_cast< task::XInteractionDisapprove
* >( this ) );
316 return aRet
.hasValue()
317 ? aRet
: InteractionContinuation::queryInterface( rType
);
321 // XTypeProvider methods.
325 uno::Sequence
< sal_Int8
> SAL_CALL
InteractionDisapprove::getImplementationId()
327 return css::uno::Sequence
<sal_Int8
>();
332 uno::Sequence
< uno::Type
> SAL_CALL
InteractionDisapprove::getTypes()
334 static cppu::OTypeCollection
s_aCollection(
335 cppu::UnoType
<lang::XTypeProvider
>::get(),
336 cppu::UnoType
<task::XInteractionDisapprove
>::get() );
338 return s_aCollection
.getTypes();
342 // XInteractionContinuation methods.
346 void SAL_CALL
InteractionDisapprove::select()
352 // InteractionSupplyAuthentication Implementation.
355 // XInterface methods.
360 InteractionSupplyAuthentication::queryInterface( const uno::Type
& rType
)
362 uno::Any aRet
= cppu::queryInterface( rType
,
363 static_cast< lang::XTypeProvider
* >( this ),
364 static_cast< task::XInteractionContinuation
* >( this ),
365 static_cast< ucb::XInteractionSupplyAuthentication
* >( this ),
366 static_cast< ucb::XInteractionSupplyAuthentication2
* >( this ));
368 return aRet
.hasValue()
369 ? aRet
: InteractionContinuation::queryInterface( rType
);
373 // XTypeProvider methods.
377 uno::Sequence
< sal_Int8
> SAL_CALL
378 InteractionSupplyAuthentication::getImplementationId()
380 return css::uno::Sequence
<sal_Int8
>();
385 uno::Sequence
< uno::Type
> SAL_CALL
InteractionSupplyAuthentication::getTypes()
387 static cppu::OTypeCollection
s_aCollection(
388 cppu::UnoType
<lang::XTypeProvider
>::get(),
389 cppu::UnoType
<ucb::XInteractionSupplyAuthentication2
>::get() );
391 return s_aCollection
.getTypes();
395 // XInteractionContinuation methods.
399 void SAL_CALL
InteractionSupplyAuthentication::select()
405 // XInteractionSupplyAuthentication methods.
410 InteractionSupplyAuthentication::canSetRealm()
412 return m_bCanSetRealm
;
418 InteractionSupplyAuthentication::setRealm( const OUString
& Realm
)
420 OSL_ENSURE( m_bCanSetPassword
,
421 "InteractionSupplyAuthentication::setRealm - Not supported!" );
423 if ( m_bCanSetRealm
)
430 InteractionSupplyAuthentication::canSetUserName()
432 return m_bCanSetUserName
;
438 InteractionSupplyAuthentication::setUserName( const OUString
& UserName
)
440 OSL_ENSURE( m_bCanSetUserName
,
441 "InteractionSupplyAuthentication::setUserName - Not supported!" );
443 if ( m_bCanSetUserName
)
444 m_aUserName
= UserName
;
450 InteractionSupplyAuthentication::canSetPassword()
452 return m_bCanSetPassword
;
458 InteractionSupplyAuthentication::setPassword( const OUString
& Password
)
460 OSL_ENSURE( m_bCanSetPassword
,
461 "InteractionSupplyAuthentication::setPassword - Not supported!" );
463 if ( m_bCanSetPassword
)
464 m_aPassword
= Password
;
469 uno::Sequence
< ucb::RememberAuthentication
> SAL_CALL
470 InteractionSupplyAuthentication::getRememberPasswordModes(
471 ucb::RememberAuthentication
& Default
)
473 Default
= m_eDefaultRememberPasswordMode
;
474 return m_aRememberPasswordModes
;
480 InteractionSupplyAuthentication::setRememberPassword(
481 ucb::RememberAuthentication Remember
)
483 m_eRememberPasswordMode
= Remember
;
489 InteractionSupplyAuthentication::canSetAccount()
491 return m_bCanSetAccount
;
497 InteractionSupplyAuthentication::setAccount( const OUString
& /*Account*/ )
499 OSL_ENSURE( m_bCanSetAccount
,
500 "InteractionSupplyAuthentication::setAccount - Not supported!" );
505 uno::Sequence
< ucb::RememberAuthentication
> SAL_CALL
506 InteractionSupplyAuthentication::getRememberAccountModes(
507 ucb::RememberAuthentication
& Default
)
509 Default
= m_eDefaultRememberAccountMode
;
510 return m_aRememberAccountModes
;
515 void SAL_CALL
InteractionSupplyAuthentication::setRememberAccount(
516 ucb::RememberAuthentication
)
521 // XInteractionSupplyAuthentication2 methods.
526 InteractionSupplyAuthentication::canUseSystemCredentials(
530 return m_bCanUseSystemCredentials
;
535 void SAL_CALL
InteractionSupplyAuthentication::setUseSystemCredentials(
536 sal_Bool UseSystemCredentials
)
538 if ( m_bCanUseSystemCredentials
)
539 m_bUseSystemCredentials
= UseSystemCredentials
;
543 // InteractionReplaceExistingData Implementation.
546 // XInterface methods.
551 InteractionReplaceExistingData::queryInterface( const uno::Type
& rType
)
553 uno::Any aRet
= cppu::queryInterface( rType
,
554 static_cast< lang::XTypeProvider
* >( this ),
555 static_cast< task::XInteractionContinuation
* >( this ),
556 static_cast< ucb::XInteractionReplaceExistingData
* >( this ) );
558 return aRet
.hasValue()
559 ? aRet
: InteractionContinuation::queryInterface( rType
);
563 // XTypeProvider methods.
567 uno::Sequence
< sal_Int8
> SAL_CALL
568 InteractionReplaceExistingData::getImplementationId()
570 return css::uno::Sequence
<sal_Int8
>();
575 uno::Sequence
< uno::Type
> SAL_CALL
InteractionReplaceExistingData::getTypes()
577 static cppu::OTypeCollection
s_aCollection(
578 cppu::UnoType
<lang::XTypeProvider
>::get(),
579 cppu::UnoType
<ucb::XInteractionReplaceExistingData
>::get() );
581 return s_aCollection
.getTypes();
585 // XInteractionContinuation methods.
589 void SAL_CALL
InteractionReplaceExistingData::select()
594 // InteractionAuthFallback Implementation
596 // XInterface methods.
600 InteractionAuthFallback::queryInterface( const uno::Type
& rType
)
602 uno::Any aRet
= cppu::queryInterface( rType
,
603 static_cast< task::XInteractionContinuation
* >( this ),
604 static_cast< ucb::XInteractionAuthFallback
* >( this ));
606 return aRet
.hasValue()
607 ? aRet
: InteractionContinuation::queryInterface( rType
);
610 // XInteractionContinuation methods.
613 void SAL_CALL
InteractionAuthFallback::select()
618 // XInteractionAuthFallback methods
621 void SAL_CALL
InteractionAuthFallback::setCode( const OUString
& code
)
626 const OUString
& InteractionAuthFallback::getCode() const
631 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */