1*6d739b60SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*6d739b60SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*6d739b60SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*6d739b60SAndrew Rist  * distributed with this work for additional information
6*6d739b60SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*6d739b60SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*6d739b60SAndrew Rist  * "License"); you may not use this file except in compliance
9*6d739b60SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*6d739b60SAndrew Rist  *
11*6d739b60SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*6d739b60SAndrew Rist  *
13*6d739b60SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*6d739b60SAndrew Rist  * software distributed under the License is distributed on an
15*6d739b60SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*6d739b60SAndrew Rist  * KIND, either express or implied.  See the License for the
17*6d739b60SAndrew Rist  * specific language governing permissions and limitations
18*6d739b60SAndrew Rist  * under the License.
19*6d739b60SAndrew Rist  *
20*6d739b60SAndrew Rist  *************************************************************/
21*6d739b60SAndrew Rist 
22*6d739b60SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_framework.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir //_________________________________________________________________________________________________________________
28cdf0e10cSrcweir //	my own includes
29cdf0e10cSrcweir //_________________________________________________________________________________________________________________
30cdf0e10cSrcweir #include <comphelper/interaction.hxx>
31cdf0e10cSrcweir #include <framework/interaction.hxx>
32cdf0e10cSrcweir #include <general.h>
33cdf0e10cSrcweir 
34cdf0e10cSrcweir using namespace ::com::sun::star;
35cdf0e10cSrcweir 
36cdf0e10cSrcweir namespace framework{
37cdf0e10cSrcweir 
38cdf0e10cSrcweir /*-************************************************************************************************************//**
39cdf0e10cSrcweir     @short          declaration of special continuation for filter selection
40cdf0e10cSrcweir     @descr          Sometimes filter detection during loading document failed. Then we need a possibility
41cdf0e10cSrcweir                     to ask user for his decision. These continuation transport selected filter by user to
42cdf0e10cSrcweir                     code user of interaction.
43cdf0e10cSrcweir 
44cdf0e10cSrcweir     @attention      This implementation could be used one times only. We don't support a resetable continuation yet!
45cdf0e10cSrcweir                     Why? Normaly interaction should show a filter selection dialog and ask user for his decision.
46cdf0e10cSrcweir                     He can select any filter - then instances of these class will be called by handler ... or user
47cdf0e10cSrcweir                     close dialog without any selection. Then another continuation should be slected by handler to
48cdf0e10cSrcweir                     abort continuations ... Retrying isn't very usefull here ... I think.
49cdf0e10cSrcweir 
50cdf0e10cSrcweir     @implements     XInteractionFilterSelect
51cdf0e10cSrcweir 
52cdf0e10cSrcweir     @base           ImplInheritanceHelper1
53cdf0e10cSrcweir                     ContinuationBase
54cdf0e10cSrcweir 
55cdf0e10cSrcweir     @devstatus      ready to use
56cdf0e10cSrcweir     @threadsafe     no (used on once position only!)
57cdf0e10cSrcweir *//*-*************************************************************************************************************/
58cdf0e10cSrcweir class ContinuationFilterSelect : public comphelper::OInteraction< ::com::sun::star::document::XInteractionFilterSelect >
59cdf0e10cSrcweir {
60cdf0e10cSrcweir     // c++ interface
61cdf0e10cSrcweir     public:
62cdf0e10cSrcweir         ContinuationFilterSelect();
63cdf0e10cSrcweir 
64cdf0e10cSrcweir     // uno interface
65cdf0e10cSrcweir     public:
66cdf0e10cSrcweir         virtual void            SAL_CALL setFilter( const ::rtl::OUString& sFilter ) throw( ::com::sun::star::uno::RuntimeException );
67cdf0e10cSrcweir         virtual ::rtl::OUString SAL_CALL getFilter(                                ) throw( ::com::sun::star::uno::RuntimeException );
68cdf0e10cSrcweir 
69cdf0e10cSrcweir     // member
70cdf0e10cSrcweir     private:
71cdf0e10cSrcweir         ::rtl::OUString m_sFilter;
72cdf0e10cSrcweir 
73cdf0e10cSrcweir };  // class ContinuationFilterSelect
74cdf0e10cSrcweir 
75cdf0e10cSrcweir 
76cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
77cdf0e10cSrcweir // initialize continuation with right start values
78cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
79cdf0e10cSrcweir ContinuationFilterSelect::ContinuationFilterSelect()
80cdf0e10cSrcweir     : m_sFilter( ::rtl::OUString() )
81cdf0e10cSrcweir {
82cdf0e10cSrcweir }
83cdf0e10cSrcweir 
84cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
85cdf0e10cSrcweir // handler should use it after selection to set user specified filter for transport
86cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
87cdf0e10cSrcweir void SAL_CALL ContinuationFilterSelect::setFilter( const ::rtl::OUString& sFilter ) throw( css::uno::RuntimeException )
88cdf0e10cSrcweir {
89cdf0e10cSrcweir     m_sFilter = sFilter;
90cdf0e10cSrcweir }
91cdf0e10cSrcweir 
92cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
93cdf0e10cSrcweir // read access to transported filter
94cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
95cdf0e10cSrcweir ::rtl::OUString SAL_CALL ContinuationFilterSelect::getFilter() throw( css::uno::RuntimeException )
96cdf0e10cSrcweir {
97cdf0e10cSrcweir     return m_sFilter;
98cdf0e10cSrcweir }
99cdf0e10cSrcweir 
100cdf0e10cSrcweir class RequestFilterSelect_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
101cdf0e10cSrcweir {
102cdf0e10cSrcweir public:
103cdf0e10cSrcweir     RequestFilterSelect_Impl( const ::rtl::OUString& sURL );
104cdf0e10cSrcweir     sal_Bool        isAbort  () const;
105cdf0e10cSrcweir     ::rtl::OUString getFilter() const;
106cdf0e10cSrcweir 
107cdf0e10cSrcweir public:
108cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getRequest() throw( ::com::sun::star::uno::RuntimeException );
109cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException );
110cdf0e10cSrcweir 
111cdf0e10cSrcweir private:
112cdf0e10cSrcweir     ::com::sun::star::uno::Any                                                                                                 m_aRequest      ;
113cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > >    m_lContinuations;
114cdf0e10cSrcweir     comphelper::OInteractionAbort* m_pAbort;
115cdf0e10cSrcweir     ContinuationFilterSelect* m_pFilter;
116cdf0e10cSrcweir };
117cdf0e10cSrcweir 
118cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
119cdf0e10cSrcweir // initialize instance with all neccessary informations
120cdf0e10cSrcweir // We use it without any further checks on our member then ...!
121cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
122cdf0e10cSrcweir RequestFilterSelect_Impl::RequestFilterSelect_Impl( const ::rtl::OUString& sURL )
123cdf0e10cSrcweir {
124cdf0e10cSrcweir 	::rtl::OUString temp;
125cdf0e10cSrcweir 	css::uno::Reference< css::uno::XInterface > temp2;
126cdf0e10cSrcweir     css::document::NoSuchFilterRequest aFilterRequest( temp                             ,
127cdf0e10cSrcweir                                                        temp2							,
128cdf0e10cSrcweir                                                        sURL                                          );
129cdf0e10cSrcweir     m_aRequest <<= aFilterRequest;
130cdf0e10cSrcweir 
131cdf0e10cSrcweir     m_pAbort  = new comphelper::OInteractionAbort;
132cdf0e10cSrcweir     m_pFilter = new ContinuationFilterSelect;
133cdf0e10cSrcweir 
134cdf0e10cSrcweir     m_lContinuations.realloc( 2 );
135cdf0e10cSrcweir     m_lContinuations[0] = css::uno::Reference< css::task::XInteractionContinuation >( m_pAbort  );
136cdf0e10cSrcweir     m_lContinuations[1] = css::uno::Reference< css::task::XInteractionContinuation >( m_pFilter );
137cdf0e10cSrcweir }
138cdf0e10cSrcweir 
139cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
140cdf0e10cSrcweir // return abort state of interaction
141cdf0e10cSrcweir // If it is true, return value of method "getFilter()" will be unspecified then!
142cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
143cdf0e10cSrcweir sal_Bool RequestFilterSelect_Impl::isAbort() const
144cdf0e10cSrcweir {
145cdf0e10cSrcweir     return m_pAbort->wasSelected();
146cdf0e10cSrcweir }
147cdf0e10cSrcweir 
148cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
149cdf0e10cSrcweir // return user selected filter
150cdf0e10cSrcweir // Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony!
151cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
152cdf0e10cSrcweir ::rtl::OUString RequestFilterSelect_Impl::getFilter() const
153cdf0e10cSrcweir {
154cdf0e10cSrcweir     return m_pFilter->getFilter();
155cdf0e10cSrcweir }
156cdf0e10cSrcweir 
157cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
158cdf0e10cSrcweir // handler call it to get type of request
159cdf0e10cSrcweir // Is hard coded to "please select filter" here. see ctor for further informations.
160cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
161cdf0e10cSrcweir css::uno::Any SAL_CALL RequestFilterSelect_Impl::getRequest() throw( css::uno::RuntimeException )
162cdf0e10cSrcweir {
163cdf0e10cSrcweir     return m_aRequest;
164cdf0e10cSrcweir }
165cdf0e10cSrcweir 
166cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
167cdf0e10cSrcweir // handler call it to get possible continuations
168cdf0e10cSrcweir // We support "abort/select_filter" only here.
169cdf0e10cSrcweir // After interaction we support read access on these continuations on our c++ interface to
170cdf0e10cSrcweir // return user decision.
171cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
172cdf0e10cSrcweir css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > SAL_CALL RequestFilterSelect_Impl::getContinuations() throw( css::uno::RuntimeException )
173cdf0e10cSrcweir {
174cdf0e10cSrcweir     return m_lContinuations;
175cdf0e10cSrcweir }
176cdf0e10cSrcweir 
177cdf0e10cSrcweir 
178cdf0e10cSrcweir RequestFilterSelect::RequestFilterSelect( const ::rtl::OUString& sURL )
179cdf0e10cSrcweir {
180cdf0e10cSrcweir     pImp = new RequestFilterSelect_Impl( sURL );
181cdf0e10cSrcweir     pImp->acquire();
182cdf0e10cSrcweir }
183cdf0e10cSrcweir 
184cdf0e10cSrcweir RequestFilterSelect::~RequestFilterSelect()
185cdf0e10cSrcweir {
186cdf0e10cSrcweir     pImp->release();
187cdf0e10cSrcweir }
188cdf0e10cSrcweir 
189cdf0e10cSrcweir 
190cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
191cdf0e10cSrcweir // return abort state of interaction
192cdf0e10cSrcweir // If it is true, return value of method "getFilter()" will be unspecified then!
193cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
194cdf0e10cSrcweir sal_Bool RequestFilterSelect::isAbort() const
195cdf0e10cSrcweir {
196cdf0e10cSrcweir     return pImp->isAbort();
197cdf0e10cSrcweir }
198cdf0e10cSrcweir 
199cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
200cdf0e10cSrcweir // return user selected filter
201cdf0e10cSrcweir // Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony!
202cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
203cdf0e10cSrcweir ::rtl::OUString RequestFilterSelect::getFilter() const
204cdf0e10cSrcweir {
205cdf0e10cSrcweir     return pImp->getFilter();
206cdf0e10cSrcweir }
207cdf0e10cSrcweir 
208cdf0e10cSrcweir uno::Reference < task::XInteractionRequest > RequestFilterSelect::GetRequest()
209cdf0e10cSrcweir {
210cdf0e10cSrcweir     return uno::Reference < task::XInteractionRequest > (pImp);
211cdf0e10cSrcweir }
212cdf0e10cSrcweir 
213cdf0e10cSrcweir /*
214cdf0e10cSrcweir class RequestAmbigousFilter_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
215cdf0e10cSrcweir {
216cdf0e10cSrcweir public:
217cdf0e10cSrcweir     RequestAmbigousFilter_Impl( const ::rtl::OUString& sURL            ,
218cdf0e10cSrcweir                             const ::rtl::OUString& sSelectedFilter ,
219cdf0e10cSrcweir                             const ::rtl::OUString& sDetectedFilter );
220cdf0e10cSrcweir     sal_Bool        isAbort  () const;
221cdf0e10cSrcweir     ::rtl::OUString getFilter() const;
222cdf0e10cSrcweir 
223cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getRequest () throw( ::com::sun::star::uno::RuntimeException );
224cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException );
225cdf0e10cSrcweir 
226cdf0e10cSrcweir     ::com::sun::star::uno::Any                                                                                                 m_aRequest      ;
227cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > >    m_lContinuations;
228cdf0e10cSrcweir     ContinuationAbort*                                                                                                         m_pAbort        ;
229cdf0e10cSrcweir     ContinuationFilterSelect*                                                                                                  m_pFilter       ;
230cdf0e10cSrcweir };
231cdf0e10cSrcweir 
232cdf0e10cSrcweir RequestAmbigousFilter::RequestAmbigousFilter( const ::rtl::OUString& sURL, const ::rtl::OUString& sSelectedFilter,
233cdf0e10cSrcweir     const ::rtl::OUString& sDetectedFilter )
234cdf0e10cSrcweir {
235cdf0e10cSrcweir     pImp = new RequestAmbigousFilter_Impl( sURL, sSelectedFilter, sDetectedFilter );
236cdf0e10cSrcweir     pImp->acquire();
237cdf0e10cSrcweir }
238cdf0e10cSrcweir 
239cdf0e10cSrcweir RequestAmbigousFilter::~RequestAmbigousFilter()
240cdf0e10cSrcweir {
241cdf0e10cSrcweir     pImp->release();
242cdf0e10cSrcweir }
243cdf0e10cSrcweir 
244cdf0e10cSrcweir sal_Bool RequestAmbigousFilter::isAbort() const
245cdf0e10cSrcweir {
246cdf0e10cSrcweir     return pImp->isAbort();
247cdf0e10cSrcweir }
248cdf0e10cSrcweir 
249cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
250cdf0e10cSrcweir // return user selected filter
251cdf0e10cSrcweir // Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony!
252cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
253cdf0e10cSrcweir ::rtl::OUString RequestAmbigousFilter::getFilter() const
254cdf0e10cSrcweir {
255cdf0e10cSrcweir     return pImp->getFilter();
256cdf0e10cSrcweir }
257cdf0e10cSrcweir 
258cdf0e10cSrcweir uno::Reference < task::XInteractionRequest > RequestAmbigousFilter::GetRequest()
259cdf0e10cSrcweir {
260cdf0e10cSrcweir     return uno::Reference < task::XInteractionRequest > (pImp);
261cdf0e10cSrcweir }
262cdf0e10cSrcweir 
263cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
264cdf0e10cSrcweir // initialize instance with all neccessary informations
265cdf0e10cSrcweir // We use it without any further checks on our member then ...!
266cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
267cdf0e10cSrcweir RequestAmbigousFilter_Impl::RequestAmbigousFilter_Impl( const ::rtl::OUString& sURL            ,
268cdf0e10cSrcweir                                               const ::rtl::OUString& sSelectedFilter ,
269cdf0e10cSrcweir                                               const ::rtl::OUString& sDetectedFilter )
270cdf0e10cSrcweir {
271cdf0e10cSrcweir 	::rtl::OUString temp;
272cdf0e10cSrcweir 	css::uno::Reference< css::uno::XInterface > temp2;
273cdf0e10cSrcweir     css::document::AmbigousFilterRequest aFilterRequest( temp                             ,
274cdf0e10cSrcweir                                                          temp2 ,
275cdf0e10cSrcweir                                                          sURL                                          ,
276cdf0e10cSrcweir                                                          sSelectedFilter                               ,
277cdf0e10cSrcweir                                                          sDetectedFilter                               );
278cdf0e10cSrcweir     m_aRequest <<= aFilterRequest;
279cdf0e10cSrcweir 
280cdf0e10cSrcweir     m_pAbort  = new ContinuationAbort       ;
281cdf0e10cSrcweir     m_pFilter = new ContinuationFilterSelect;
282cdf0e10cSrcweir 
283cdf0e10cSrcweir     m_lContinuations.realloc( 2 );
284cdf0e10cSrcweir     m_lContinuations[0] = css::uno::Reference< css::task::XInteractionContinuation >( m_pAbort  );
285cdf0e10cSrcweir     m_lContinuations[1] = css::uno::Reference< css::task::XInteractionContinuation >( m_pFilter );
286cdf0e10cSrcweir }
287cdf0e10cSrcweir 
288cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
289cdf0e10cSrcweir // return abort state of interaction
290cdf0e10cSrcweir // If it is true, return value of method "getFilter()" will be unspecified then!
291cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
292cdf0e10cSrcweir sal_Bool RequestAmbigousFilter_Impl::isAbort() const
293cdf0e10cSrcweir {
294cdf0e10cSrcweir     return m_pAbort->isSelected();
295cdf0e10cSrcweir }
296cdf0e10cSrcweir 
297cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
298cdf0e10cSrcweir // return user selected filter
299cdf0e10cSrcweir // Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony!
300cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
301cdf0e10cSrcweir ::rtl::OUString RequestAmbigousFilter_Impl::getFilter() const
302cdf0e10cSrcweir {
303cdf0e10cSrcweir     return m_pFilter->getFilter();
304cdf0e10cSrcweir }
305cdf0e10cSrcweir 
306cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
307cdf0e10cSrcweir // handler call it to get type of request
308cdf0e10cSrcweir // Is hard coded to "please select filter" here. see ctor for further informations.
309cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
310cdf0e10cSrcweir css::uno::Any SAL_CALL RequestAmbigousFilter_Impl::getRequest() throw( css::uno::RuntimeException )
311cdf0e10cSrcweir {
312cdf0e10cSrcweir     return m_aRequest;
313cdf0e10cSrcweir }
314cdf0e10cSrcweir 
315cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
316cdf0e10cSrcweir // handler call it to get possible continuations
317cdf0e10cSrcweir // We support "abort/select_filter" only here.
318cdf0e10cSrcweir // After interaction we support read access on these continuations on our c++ interface to
319cdf0e10cSrcweir // return user decision.
320cdf0e10cSrcweir //---------------------------------------------------------------------------------------------------------
321cdf0e10cSrcweir css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > SAL_CALL RequestAmbigousFilter_Impl::getContinuations() throw( css::uno::RuntimeException )
322cdf0e10cSrcweir {
323cdf0e10cSrcweir     return m_lContinuations;
324cdf0e10cSrcweir }
325cdf0e10cSrcweir */
326cdf0e10cSrcweir 
327cdf0e10cSrcweir class InteractionRequest_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
328cdf0e10cSrcweir {
329cdf0e10cSrcweir     uno::Any m_aRequest;
330cdf0e10cSrcweir     uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations;
331cdf0e10cSrcweir 
332cdf0e10cSrcweir public:
333cdf0e10cSrcweir     InteractionRequest_Impl( const ::com::sun::star::uno::Any& aRequest,
334cdf0e10cSrcweir         const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > lContinuations )
335cdf0e10cSrcweir     {
336cdf0e10cSrcweir         m_aRequest = aRequest;
337cdf0e10cSrcweir         m_lContinuations = lContinuations;
338cdf0e10cSrcweir     }
339cdf0e10cSrcweir 
340cdf0e10cSrcweir     virtual uno::Any SAL_CALL getRequest() throw( uno::RuntimeException );
341cdf0e10cSrcweir     virtual uno::Sequence< uno::Reference< task::XInteractionContinuation > > SAL_CALL getContinuations()
342cdf0e10cSrcweir             throw( uno::RuntimeException );
343cdf0e10cSrcweir };
344cdf0e10cSrcweir 
345cdf0e10cSrcweir uno::Any SAL_CALL InteractionRequest_Impl::getRequest() throw( uno::RuntimeException )
346cdf0e10cSrcweir {
347cdf0e10cSrcweir     return m_aRequest;
348cdf0e10cSrcweir }
349cdf0e10cSrcweir 
350cdf0e10cSrcweir uno::Sequence< uno::Reference< task::XInteractionContinuation > > SAL_CALL InteractionRequest_Impl::getContinuations()
351cdf0e10cSrcweir     throw( uno::RuntimeException )
352cdf0e10cSrcweir {
353cdf0e10cSrcweir     return m_lContinuations;
354cdf0e10cSrcweir }
355cdf0e10cSrcweir 
356cdf0e10cSrcweir uno::Reference < task::XInteractionRequest > InteractionRequest::CreateRequest(
357cdf0e10cSrcweir     const uno::Any& aRequest, const uno::Sequence< uno::Reference< task::XInteractionContinuation > > lContinuations )
358cdf0e10cSrcweir {
359cdf0e10cSrcweir     return new InteractionRequest_Impl( aRequest, lContinuations );
360cdf0e10cSrcweir }
361cdf0e10cSrcweir 
362cdf0e10cSrcweir }       //  namespace framework
363