xref: /trunk/main/forms/source/inc/urltransformer.hxx (revision cdf0e10c)
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 FORMS_SOURCE_INC_URLTRANSFORMER_HXX
29 #define FORMS_SOURCE_INC_URLTRANSFORMER_HXX
30 
31 /** === begin UNO includes === **/
32 #include <com/sun/star/util/XURLTransformer.hpp>
33 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
34 #include <com/sun/star/util/URL.hpp>
35 /** === end UNO includes === **/
36 
37 //........................................................................
38 namespace frm
39 {
40 //........................................................................
41 
42 	//====================================================================
43 	//= UrlTransformer
44 	//====================================================================
45 	class UrlTransformer
46 	{
47     private:
48         ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
49                         m_xORB;
50         mutable ::com::sun::star::uno::Reference< ::com::sun::star::util::XURLTransformer >
51                         m_xTransformer;
52         mutable bool    m_bTriedToCreateTransformer;
53 
54     public:
55         UrlTransformer( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB );
56 
57         /** returns an URL object for the given URL string
58         */
59         ::com::sun::star::util::URL
60             getStrictURL( const ::rtl::OUString& _rURL ) const;
61 
62         /** returns an URL object for the given URL ASCII string
63         */
64         ::com::sun::star::util::URL
65             getStrictURLFromAscii( const sal_Char* _pAsciiURL ) const;
66 
67         /** parses a given URL smartly, with a protocol given by ASCII string
68         */
69         void
70             parseSmartWithAsciiProtocol( ::com::sun::star::util::URL& _rURL, const sal_Char* _pAsciiURL ) const;
71 
72     private:
73         /** ensures that we have an URLTransformer instance in <member>m_xTransformer</member>
74 
75             @return
76                 <TRUE/> if and only if m_xTransformer is not <NULL/>
77         */
78         bool    implEnsureTransformer() const;
79 	};
80 
81 //........................................................................
82 } // namespace frm
83 //........................................................................
84 
85 #endif // FORMS_SOURCE_INC_URLTRANSFORMER_HXX
86 
87