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  // MARKER(update_precomp.py): autogen include statement, do not remove
25  #include "precompiled_desktop.hxx"
26  
27  #include "dp_script.hrc"
28  #include "dp_resource.h"
29  #include "dp_xml.h"
30  #include "dp_lib_container.h"
31  #include "ucbhelper/content.hxx"
32  
33  
34  using namespace ::dp_misc;
35  using namespace ::com::sun::star;
36  using namespace ::com::sun::star::uno;
37  using namespace ::com::sun::star::ucb;
38  using ::rtl::OUString;
39  
40  namespace dp_registry {
41  namespace backend {
42  namespace script {
43  
44  namespace {
45  struct StrCannotDetermineLibName : public StaticResourceString<
46      StrCannotDetermineLibName, RID_STR_CANNOT_DETERMINE_LIBNAME> {};
47  }
48  
49  //______________________________________________________________________________
get_libname(OUString const & url,Reference<XCommandEnvironment> const & xCmdEnv,Reference<XComponentContext> const & xContext)50  OUString LibraryContainer::get_libname(
51      OUString const & url,
52      Reference<XCommandEnvironment> const & xCmdEnv,
53      Reference<XComponentContext> const & xContext )
54  {
55      ::xmlscript::LibDescriptor import;
56      ::ucbhelper::Content ucb_content( url, xCmdEnv );
57      xml_parse( ::xmlscript::importLibrary( import ), ucb_content, xContext );
58  
59      if (import.aName.getLength() == 0) {
60          throw Exception( StrCannotDetermineLibName::get(),
61                           Reference<XInterface>() );
62      }
63      return import.aName;
64  }
65  
66  }
67  }
68  }
69  
70