1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  *   Licensed to the Apache Software Foundation (ASF) under one or more
12  *   contributor license agreements. See the NOTICE file distributed
13  *   with this work for additional information regarding copyright
14  *   ownership. The ASF licenses this file to you under the Apache
15  *   License, Version 2.0 (the "License"); you may not use this file
16  *   except in compliance with the License. You may obtain a copy of
17  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_JVMACCESS_CLASSPATH_HXX
21 #define INCLUDED_JVMACCESS_CLASSPATH_HXX
22 
23 #include <sal/config.h>
24 
25 #include <jni.h>
26 
27 #include <jvmaccess/jvmaccessdllapi.h>
28 #include <rtl/ustring.hxx>
29 
30 namespace com { namespace sun { namespace star { namespace uno {
31     class XComponentContext;
32 } } } }
33 
34 namespace com { namespace sun { namespace star { namespace uno { template <typename > class Reference; } } } }
35 
36 namespace jvmaccess {
37 
38 /**
39    Helper functions for class path handling.
40  */
41 namespace ClassPath {
42 
43 /**
44    translates a class path into a java.net.URL[] instance.
45 
46    @param context
47    a component context; must not be null.
48 
49    @param environment
50    a JNI environment; must not be null.
51 
52    @param classPath
53    a list of zero or more internal (see the
54    com.sun.star.uri.ExternalUriReferenceTranslator service) URI references,
55    where any space characters (U+0020) are ignored (and, in particular, separate
56    adjacent URI references).  Any vnd.sun.star.expand URL references in the list
57    are expanded using the com.sun.star.util.theMacroExpander singleton of the
58    given context.
59 
60    @returns
61    a local reference to a java.net.URL[] instance containing the external (see
62    the com.sun.star.uri.ExternalUriReferenceTranslator service) equivalents of
63    all the URI references in the given classPath.  If null, a (still pending)
64    JNI exception occurred.
65 
66    @throws com::sun::star::uno::RuntimeException
67  */
68 JVMACCESS_DLLPUBLIC jobjectArray translateToUrls(
69     css::uno::Reference<css::uno::XComponentContext> const & context,
70     JNIEnv * environment, OUString const & classPath);
71 
72 }
73 
74 }
75 
76 #endif
77 
78 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
79