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 #if defined __clang__
26 #pragma clang diagnostic push
27 #pragma clang diagnostic ignored "-Wunknown-attributes"
28 #endif
29 #include <jni.h>
30 #if defined __clang__
31 #pragma clang diagnostic pop
32 #endif
33 
34 #include <jvmaccess/jvmaccessdllapi.h>
35 #include <rtl/ustring.hxx>
36 
37 namespace com::sun::star::uno
38 {
39 class XComponentContext;
40 }
41 
42 namespace com::sun::star::uno
43 {
44 template <typename> class Reference;
45 }
46 
47 namespace jvmaccess
48 {
49 /**
50    Helper functions for class path handling.
51  */
52 namespace ClassPath
53 {
54 /**
55    translates a class path into a java.net.URL[] instance.
56 
57    @param context
58    a component context; must not be null.
59 
60    @param environment
61    a JNI environment; must not be null.
62 
63    @param classPath
64    a list of zero or more internal (see the
65    com.sun.star.uri.ExternalUriReferenceTranslator service) URI references,
66    where any space characters (U+0020) are ignored (and, in particular, separate
67    adjacent URI references).  Any vnd.sun.star.expand URL references in the list
68    are expanded using the com.sun.star.util.theMacroExpander singleton of the
69    given context.
70 
71    @returns
72    a local reference to a java.net.URL[] instance containing the external (see
73    the com.sun.star.uri.ExternalUriReferenceTranslator service) equivalents of
74    all the URI references in the given classPath.  If null, a (still pending)
75    JNI exception occurred.
76 
77    @throws com::sun::star::uno::RuntimeException
78  */
79 JVMACCESS_DLLPUBLIC jobjectArray
80 translateToUrls(css::uno::Reference<css::uno::XComponentContext> const& context,
81                 JNIEnv* environment, OUString const& classPath);
82 }
83 }
84 
85 #endif
86 
87 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
88