xref: /trunk/main/ucb/source/core/identify.cxx (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 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_ucb.hxx"
30 
31 /**************************************************************************
32                                 TODO
33  **************************************************************************
34 
35  *************************************************************************/
36 
37 #include "identify.hxx"
38 
39 using namespace rtl;
40 using namespace com::sun::star::uno;
41 using namespace com::sun::star::lang;
42 using namespace com::sun::star::ucb;
43 
44 //=========================================================================
45 //
46 // ContentIdentifier Implementation.
47 //
48 //=========================================================================
49 
50 ContentIdentifier::ContentIdentifier(
51                         const Reference< XMultiServiceFactory >& rxSMgr,
52                         const OUString& ContentId )
53 : m_xSMgr( rxSMgr ),
54   m_aContentId( ContentId )
55 {
56 }
57 
58 //=========================================================================
59 // virtual
60 ContentIdentifier::~ContentIdentifier()
61 {
62 }
63 
64 //=========================================================================
65 //
66 // XInterface methods.
67 //
68 //=========================================================================
69 
70 XINTERFACE_IMPL_2( ContentIdentifier,
71                    XTypeProvider,
72                    XContentIdentifier );
73 
74 //=========================================================================
75 //
76 // XTypeProvider methods.
77 //
78 //=========================================================================
79 
80 XTYPEPROVIDER_IMPL_2( ContentIdentifier,
81                       XTypeProvider,
82                       XContentIdentifier );
83 
84 //=========================================================================
85 //
86 // XContentIdentifier methods.
87 //
88 //=========================================================================
89 
90 // virtual
91 OUString SAL_CALL ContentIdentifier::getContentIdentifier()
92     throw( RuntimeException )
93 {
94     return m_aContentId;
95 }
96 
97 //=========================================================================
98 // virtual
99 OUString SAL_CALL ContentIdentifier::getContentProviderScheme()
100     throw( RuntimeException )
101 {
102     if ( !m_aProviderScheme.getLength() && m_aContentId.getLength() )
103     {
104         // The content provider scheme is the part before the first ':'
105         // within the content id.
106         sal_Int32 nPos = m_aContentId.indexOf( ':', 0 );
107         if ( nPos != -1 )
108         {
109             OUString aScheme( m_aContentId.copy( 0, nPos ) );
110             m_aProviderScheme = aScheme.toAsciiLowerCase();
111         }
112     }
113 
114     return m_aProviderScheme;
115 }
116 
117