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.