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

All Methods Instance Methods Concrete Methods
`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-2018 Timothy Wall. All Rights Reserved.