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/or `addFromNativeConverter(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 both `int.class` and `Integer.class`). If you want different mapping behavior than the default, simply override `getToNativeConverter(java.lang.Class<?>)` and `getFromNativeConverter(java.lang.Class<?>)`.

See Also:
  - `Library.OPTION_TYPE_MAPPER`

## Constructor Summary

Constructors
Constructor
Description
`DefaultTypeMapper()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addFromNativeConverter(Class<?> cls, FromNativeConverter converter)`
Add a `FromNativeConverter` to convert a native result type into the given Java type.
`void`
`addToNativeConverter(Class<?> cls, ToNativeConverter converter)`
Add a `ToNativeConverter` to define the conversion into a native type from arguments of the given Java type.
`void`
`addTypeConverter(Class<?> cls, TypeConverter converter)`
Add a `TypeConverter` to provide bidirectional mapping between a native and Java type.
`FromNativeConverter`
`getFromNativeConverter(Class<?> javaType)`
Return the `FromNativeConverter` appropriate for the given Java class.
`ToNativeConverter`
`getToNativeConverter(Class<?> javaType)`
Return the `ToNativeConverter` appropriate for the given Java class.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### DefaultTypeMapper

public DefaultTypeMapper()

## Method Details

### addToNativeConverter

public void addToNativeConverter(Class<?> cls, ToNativeConverter converter)
Add a `ToNativeConverter` 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 conversion
  `converter` - `ToNativeConverter` to transform an object of the given Java class into its native-compatible form.

### addFromNativeConverter

public void addFromNativeConverter(Class<?> cls, FromNativeConverter converter)
Add a `FromNativeConverter` 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 a `TypeConverter` to provide bidirectional mapping between a native and Java type.

Parameters:
  `cls` - Java class representation for a native type
  `converter` - `TypeConverter` to translate between native and Java types.

### getFromNativeConverter

public FromNativeConverter getFromNativeConverter(Class<?> javaType)
Description copied from interface: `TypeMapper`
Return the `FromNativeConverter` appropriate for the given Java class.

Specified by:
  `getFromNativeConverter` in interface `TypeMapper`
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 the `ToNativeConverter` appropriate for the given Java class.

Specified by:
  `getToNativeConverter` in interface `TypeMapper`
Parameters:
  `javaType` - Java class representation of the native type.
Returns:
  Converter to the native-compatible type.