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:
  • 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.