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 and Description
    `DefaultTypeMapper()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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.

Copyright © 2007-2016 Timothy Wall. All Rights Reserved.