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