1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef SCRIPTING_BASLIBNODE_HXX
25 #define SCRIPTING_BASLIBNODE_HXX
26 
27 #include <com/sun/star/beans/XPropertySet.hpp>
28 #include <com/sun/star/script/XLibraryContainer.hpp>
29 #include <com/sun/star/script/browse/XBrowseNode.hpp>
30 #include <com/sun/star/uno/XComponentContext.hpp>
31 #include <cppuhelper/implbase1.hxx>
32 
33 class BasicManager;
34 
35 
36 //.........................................................................
37 namespace basprov
38 {
39 //.........................................................................
40 
41     //	----------------------------------------------------
42     //	class BasicLibraryNodeImpl
43     //	----------------------------------------------------
44 
45     typedef ::cppu::WeakImplHelper1<
46         ::com::sun::star::script::browse::XBrowseNode > BasicLibraryNodeImpl_BASE;
47 
48 
49     class BasicLibraryNodeImpl : public BasicLibraryNodeImpl_BASE
50     {
51     private:
52         ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >    m_xContext;
53 	 ::rtl::OUString  m_sScriptingContext;
54         BasicManager* m_pBasicManager;
55         ::com::sun::star::uno::Reference< ::com::sun::star::script::XLibraryContainer > m_xLibContainer;
56         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xLibrary;
57         ::rtl::OUString m_sLibName;
58         bool m_bIsAppScript;
59 
60     public:
61         BasicLibraryNodeImpl( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext,
62 	    const ::rtl::OUString& sScriptingContext,
63             BasicManager* pBasicManager,
64             const ::com::sun::star::uno::Reference< ::com::sun::star::script::XLibraryContainer >& xLibContainer,
65             const ::rtl::OUString& sLibName, bool isAppScript=true );
66         virtual ~BasicLibraryNodeImpl();
67 
68         // XBrowseNode
69         virtual ::rtl::OUString SAL_CALL getName(  )
70             throw (::com::sun::star::uno::RuntimeException);
71         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::script::browse::XBrowseNode > > SAL_CALL getChildNodes(  )
72             throw (::com::sun::star::uno::RuntimeException);
73         virtual sal_Bool SAL_CALL hasChildNodes(  )
74             throw (::com::sun::star::uno::RuntimeException);
75         virtual sal_Int16 SAL_CALL getType(  )
76             throw (::com::sun::star::uno::RuntimeException);
77     };
78 
79 //.........................................................................
80 }	// namespace basprov
81 //.........................................................................
82 
83 #endif // SCRIPTING_BASLIBNODE_HXX
84