MCPcopy Create free account
hub / github.com/java-native-access/jna / getConversion

Method getConversion

src/com/sun/jna/Native.java:1780–1865  ·  view source on GitHub ↗
(Class<?> type, TypeMapper mapper, boolean allowObjects)

Source from the content-addressed store, hash-verified

1778 private static final int CVT_BYTE = 29;
1779
1780 private static int getConversion(Class<?> type, TypeMapper mapper, boolean allowObjects) {
1781 if (type == Void.class) type = void.class;
1782
1783 if (mapper != null) {
1784 FromNativeConverter fromNative = mapper.getFromNativeConverter(type);
1785 ToNativeConverter toNative = mapper.getToNativeConverter(type);
1786 if (fromNative != null) {
1787 Class<?> nativeType = fromNative.nativeType();
1788 if (nativeType == String.class) {
1789 return CVT_TYPE_MAPPER_STRING;
1790 }
1791 if (nativeType == WString.class) {
1792 return CVT_TYPE_MAPPER_WSTRING;
1793 }
1794 return CVT_TYPE_MAPPER;
1795 }
1796 if (toNative != null) {
1797 Class<?> nativeType = toNative.nativeType();
1798 if (nativeType == String.class) {
1799 return CVT_TYPE_MAPPER_STRING;
1800 }
1801 if (nativeType == WString.class) {
1802 return CVT_TYPE_MAPPER_WSTRING;
1803 }
1804 return CVT_TYPE_MAPPER;
1805 }
1806 }
1807
1808 if (Pointer.class.isAssignableFrom(type)) {
1809 return CVT_POINTER;
1810 }
1811 if (String.class == type) {
1812 return CVT_STRING;
1813 }
1814 if (WString.class.isAssignableFrom(type)) {
1815 return CVT_WSTRING;
1816 }
1817 if (Platform.HAS_BUFFERS && Buffers.isBuffer(type)) {
1818 return CVT_BUFFER;
1819 }
1820 if (Structure.class.isAssignableFrom(type)) {
1821 if (Structure.ByValue.class.isAssignableFrom(type)) {
1822 return CVT_STRUCTURE_BYVAL;
1823 }
1824 return CVT_STRUCTURE;
1825 }
1826 if (type.isArray()) {
1827 switch(type.getName().charAt(1)) {
1828 case 'Z': return CVT_ARRAY_BOOLEAN;
1829 case 'B': return CVT_ARRAY_BYTE;
1830 case 'S': return CVT_ARRAY_SHORT;
1831 case 'C': return CVT_ARRAY_CHAR;
1832 case 'I': return CVT_ARRAY_INT;
1833 case 'J': return CVT_ARRAY_LONG;
1834 case 'F': return CVT_ARRAY_FLOAT;
1835 case 'D': return CVT_ARRAY_DOUBLE;
1836 default: break;
1837 }

Callers 1

registerMethod · 0.95

Calls 10

nativeTypeMethod · 0.95
nativeTypeMethod · 0.95
isBufferMethod · 0.95
getInstanceMethod · 0.95
isArrayMethod · 0.80
getToNativeConverterMethod · 0.65
getNameMethod · 0.65
nativeTypeMethod · 0.65
charAtMethod · 0.45

Tested by

no test coverage detected