1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
/* Copyright (c) 2018 Matthias Bläsing, All Rights Reserved
*
* The contents of this file is dual-licensed under 2
* alternative Open Source/Free licenses: LGPL 2.1 or later and
* Apache License 2.0. (starting with JNA version 4.0.0).
*
* You can freely decide which license you want to apply to
* the project.
*
* You may obtain a copy of the LGPL License at:
*
* http://www.gnu.org/licenses/licenses.html
*
* A copy is also included in the downloadable source code package
* containing JNA, in file "LGPL2.1".
*
* You may obtain a copy of the Apache License at:
*
* http://www.apache.org/licenses/
*
* A copy is also included in the downloadable source code package
* containing JNA, in file "AL2.0".
*/
package com.sun.jna;
import java.util.Collections;
/**
* Variant of {@link ArgumentsMarshalNullableTest} for direct mapped interfaces.
*/
public class DirectArgumentsMarshalNullableTest extends ArgumentsMarshalNullableTest {
public static class DirectTestLibrary implements TestLibrary {
public native Int16NativeMapped returnInt16Argument(Int16NativeMapped i);
public native Int16Integer returnInt16Argument(Int16Integer i);
public native Int16 returnInt16Argument(Int16 i);
static {
NativeLibrary library = NativeLibrary.getInstance("testlib", Collections.singletonMap(Library.OPTION_TYPE_MAPPER, new TypeMapper() {
public FromNativeConverter getFromNativeConverter(Class<?> javaType) {
if (javaType == Int16.class) {
return Int16.fromNative;
} else {
return null;
}
}
public ToNativeConverter getToNativeConverter(Class<?> javaType) {
if (javaType == Int16.class) {
return Int16.toNative;
} else {
return null;
}
}
}));
Native.register(library);
}
}
/* Override original. */
@Override
protected void setUp() {
lib = new DirectTestLibrary();
}
public static void main(java.lang.String[] argList) {
junit.textui.TestRunner.run(DirectArgumentsMarshalNullableTest.class);
}
}
|