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 java.lang.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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addFromNativeConverter​(java.lang.Class<?> cls, FromNativeConverter converter)` | Add a `FromNativeConverter` to convert a native result type into the given Java type.
    `void` | `addToNativeConverter​(java.lang.Class<?> cls, ToNativeConverter converter)` | Add a `ToNativeConverter` to define the conversion into a native type from arguments of the given Java type.
    `void` | `addTypeConverter​(java.lang.Class<?> cls, TypeConverter converter)` | Add a `TypeConverter` to provide bidirectional mapping between a native and Java type.
    `FromNativeConverter` | `getFromNativeConverter​(java.lang.Class<?> javaType)` | Return the `FromNativeConverter` appropriate for the given Java class.
    `ToNativeConverter` | `getToNativeConverter​(java.lang.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 Detail

    - #### DefaultTypeMapper

          public DefaultTypeMapper()

  - ### Method Detail

    - #### addToNativeConverter

          public void addToNativeConverter​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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.