1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef __FRAMEWORK_SERVICES_URLTRANSFORMER_HXX_
29 #define __FRAMEWORK_SERVICES_URLTRANSFORMER_HXX_
30 
31 //_________________________________________________________________________________________________________________
32 //	my own includes
33 //_________________________________________________________________________________________________________________
34 
35 #ifndef __FRAMEWORK_OMUTEXMEMBER_HXX_
36 #include <threadhelp/threadhelpbase.hxx>
37 #endif
38 #include <macros/generic.hxx>
39 #include <macros/debug.hxx>
40 #include <macros/xinterface.hxx>
41 #include <macros/xtypeprovider.hxx>
42 #include <macros/xserviceinfo.hxx>
43 #include <general.h>
44 
45 //_________________________________________________________________________________________________________________
46 //	interface includes
47 //_________________________________________________________________________________________________________________
48 #include <com/sun/star/util/XURLTransformer.hpp>
49 #include <com/sun/star/util/URL.hpp>
50 
51 //_________________________________________________________________________________________________________________
52 //	other includes
53 //_________________________________________________________________________________________________________________
54 #include <cppuhelper/implbase2.hxx>
55 
56 //_________________________________________________________________________________________________________________
57 //	namespace
58 //_________________________________________________________________________________________________________________
59 
60 namespace framework{
61 
62 //_________________________________________________________________________________________________________________
63 //	exported const
64 //_________________________________________________________________________________________________________________
65 
66 //_________________________________________________________________________________________________________________
67 //	exported definitions
68 //_________________________________________________________________________________________________________________
69 
70 /*-************************************************************************************************************//**
71 	@short
72 
73 	@descr		-
74 
75 	@implements	XInterface
76 				XTypeProvider
77 				XServiceInfo
78 				XURLTransformer
79 
80 	@base		ThreadHelpBase
81 				OWeakObject
82 *//*-*************************************************************************************************************/
83 
84 class URLTransformer	:	public ::cppu::WeakImplHelper2< ::com::sun::star::util::XURLTransformer, css::lang::XServiceInfo>
85 {
86 	//-------------------------------------------------------------------------------------------------------------
87 	//	public methods
88 	//-------------------------------------------------------------------------------------------------------------
89 
90 	public:
91 
92 		//---------------------------------------------------------------------------------------------------------
93 		//	constructor / destructor
94 		//---------------------------------------------------------------------------------------------------------
95 
96 		/*-****************************************************************************************************//**
97 			@short		-
98 			@descr		-
99 
100 			@seealso	-
101 
102 			@param		-
103 			@return		-
104 
105 			@onerror	-
106 		*//*-*****************************************************************************************************/
107 
108 	 	URLTransformer( const css::uno::Reference< css::lang::XMultiServiceFactory >& sFactory );
109 
110 		/*-****************************************************************************************************//**
111 			@short		-
112 			@descr		-
113 
114 			@seealso	-
115 
116 			@param		-
117 			@return		-
118 
119 			@onerror	-
120 		*//*-*****************************************************************************************************/
121 
122 		virtual	~URLTransformer();
123 
124 		//---------------------------------------------------------------------------------------------------------
125 		//	XInterface, XTypeProvider, XServiceInfo
126 		//---------------------------------------------------------------------------------------------------------
127 
128 		DECLARE_XSERVICEINFO
129 
130 		//---------------------------------------------------------------------------------------------------------
131 		//	XURLTransformer
132 		//---------------------------------------------------------------------------------------------------------
133 
134 		/*-****************************************************************************************************//**
135 			@short		-
136 			@descr		-
137 
138 			@seealso	-
139 
140 			@param		-
141 			@return		-
142 
143 			@onerror	-
144 		*//*-*****************************************************************************************************/
145 
146     	virtual sal_Bool SAL_CALL parseStrict( css::util::URL& aURL ) throw( css::uno::RuntimeException );
147 
148 		/*-****************************************************************************************************//**
149 			@short		-
150 			@descr		-
151 
152 			@seealso	-
153 
154 			@param		-
155 			@return		-
156 
157 			@onerror	-
158 		*//*-*****************************************************************************************************/
159 
160     	virtual sal_Bool SAL_CALL parseSmart(			css::util::URL&		aURL			,
161 												const	::rtl::OUString&	sSmartProtocol	) throw( css::uno::RuntimeException );
162 
163 		/*-****************************************************************************************************//**
164 			@short		-
165 			@descr		-
166 
167 			@seealso	-
168 
169 			@param		-
170 			@return		-
171 
172 			@onerror	-
173 		*//*-*****************************************************************************************************/
174 
175     	virtual sal_Bool SAL_CALL assemble( css::util::URL& aURL ) throw( css::uno::RuntimeException );
176 
177 		/*-****************************************************************************************************//**
178 			@short		-
179 			@descr		-
180 
181 			@seealso	-
182 
183 			@param		-
184 			@return		-
185 
186 			@onerror	-
187 		*//*-*****************************************************************************************************/
188 
189     	virtual ::rtl::OUString SAL_CALL getPresentation(	const	css::util::URL&		aURL			,
190 																	sal_Bool			bWithPassword	) throw( css::uno::RuntimeException );
191 
192 	//-------------------------------------------------------------------------------------------------------------
193 	//	protected methods
194 	//-------------------------------------------------------------------------------------------------------------
195 
196 	protected:
197 
198 	//-------------------------------------------------------------------------------------------------------------
199 	//	private methods
200 	//-------------------------------------------------------------------------------------------------------------
201 
202 	private:
203 
204 	//-------------------------------------------------------------------------------------------------------------
205 	//	debug methods
206 	//	(should be private everyway!)
207 	//-------------------------------------------------------------------------------------------------------------
208 
209 
210 	//-------------------------------------------------------------------------------------------------------------
211 	//	variables
212 	//	(should be private everyway!)
213 	//-------------------------------------------------------------------------------------------------------------
214 
215 	private:
216 
217 		css::uno::Reference< css::lang::XMultiServiceFactory >		m_xFactory			;	/// reference to factory, which has created this instance
218 
219 };		//	class URLTransformer
220 
221 }		//	namespace framework
222 
223 #endif	//	#ifndef __FRAMEWORK_SERVICES_URLTRANSFORMER_HXX_
224