Package com.sun.jna
Class DefaultTypeMapper
- java.lang.Object
-
- com.sun.jna.DefaultTypeMapper
-
- All Implemented Interfaces:
TypeMapper
- Direct Known Subclasses:
W32APITypeMapper
public class DefaultTypeMapper extends Object implements TypeMapper
Provide custom mappings to and from native types. The default lookup checks classes corresponding to converters in the order added; if the class to be converted is an instance of the converter's registered class, the converter will be used.Derived classes should install additional converters using
addToNativeConverter(java.lang.Class<?>, com.sun.jna.ToNativeConverter)
and/oraddFromNativeConverter(java.lang.Class<?>, com.sun.jna.FromNativeConverter)
in the default constructor. Classes for primitive types will automatically register for the corresponding Object type and vice versa (i.e. you don't have to register bothint.class
andInteger.class
). If you want different mapping behavior than the default, simply overridegetToNativeConverter(java.lang.Class<?>)
andgetFromNativeConverter(java.lang.Class<?>)
.- See Also:
Library.OPTION_TYPE_MAPPER
-
-
Constructor Summary
Constructors Constructor Description DefaultTypeMapper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addFromNativeConverter(Class<?> cls, FromNativeConverter converter)
Add aFromNativeConverter
to convert a native result type into the given Java type.void
addToNativeConverter(Class<?> cls, ToNativeConverter converter)
Add aToNativeConverter
to define the conversion into a native type from arguments of the given Java type.void
addTypeConverter(Class<?> cls, TypeConverter converter)
Add aTypeConverter
to provide bidirectional mapping between a native and Java type.FromNativeConverter
getFromNativeConverter(Class<?> javaType)
Return theFromNativeConverter
appropriate for the given Java class.ToNativeConverter
getToNativeConverter(Class<?> javaType)
Return theToNativeConverter
appropriate for the given Java class.
-
-
-
Method Detail
-
addToNativeConverter
public void addToNativeConverter(Class<?> cls, ToNativeConverter converter)
Add aToNativeConverter
to define the conversion into a native type from arguments of the given Java type. Converters are checked for in the order added.- Parameters:
cls
- Java class requiring conversionconverter
-ToNativeConverter
to transform an object of the given Java class into its native-compatible form.
-
addFromNativeConverter
public void addFromNativeConverter(Class<?> cls, FromNativeConverter converter)
Add aFromNativeConverter
to convert a native result type into the given Java type. Converters are checked for in the order added.- Parameters:
cls
- Java class for the Java representation of a native type.converter
-FromNativeConverter
to transform a native-compatible type into its Java equivalent.
-
addTypeConverter
public void addTypeConverter(Class<?> cls, TypeConverter converter)
Add aTypeConverter
to provide bidirectional mapping between a native and Java type.- Parameters:
cls
- Java class representation for a native typeconverter
-TypeConverter
to translate between native and Java types.
-
getFromNativeConverter
public FromNativeConverter getFromNativeConverter(Class<?> javaType)
Description copied from interface:TypeMapper
Return theFromNativeConverter
appropriate for the given Java class.- Specified by:
getFromNativeConverter
in interfaceTypeMapper
- Parameters:
javaType
- Java class representation of the native type.- Returns:
- Converter from the native-compatible type.
-
getToNativeConverter
public ToNativeConverter getToNativeConverter(Class<?> javaType)
Description copied from interface:TypeMapper
Return theToNativeConverter
appropriate for the given Java class.- Specified by:
getToNativeConverter
in interfaceTypeMapper
- Parameters:
javaType
- Java class representation of the native type.- Returns:
- Converter to the native-compatible type.
-
-