Package com.sun.jna

# Class IntegerType

java.lang.Object
java.lang.Number
com.sun.jna.IntegerType

All Implemented Interfaces:
  `NativeMapped`, `Serializable`

Direct Known Subclasses:
  `BaseTSD.DWORD_PTR`, `BaseTSD.LONG_PTR`, `BaseTSD.ULONG_PTR`, `LibCAPI.size_t`, `LibCAPI.ssize_t`, `NativeLong`, `OaIdl.VARIANT_BOOL`, `Structure.FFIType.size_t`, `WinDef.BOOL`, `WinDef.CHAR`, `WinDef.DWORD`, `WinDef.DWORDLONG`, `WinDef.INT_PTR`, `WinDef.LONG`, `WinDef.LONGLONG`, `WinDef.SHORT`, `WinDef.UCHAR`, `WinDef.UINT`, `WinDef.UINT_PTR`, `WinDef.ULONG`, `WinDef.ULONGLONG`, `WinDef.USHORT`, `WinDef.WORD`, `XAttr.size_t`, `XAttr.ssize_t`

public abstract class IntegerType extends Number implements NativeMapped
Represents a native integer value, which may have a platform-specific size (e.g. `long` on unix-based platforms). May optionally indicate an unsigned attribute, such that when a value is extracted into a larger-sized container (e.g. `int` retrieved via `Number.longValue()`, the value will be unsigned. Default behavior is signed.

Author:
  wmeissner@gmail.com, twalljava@java.net
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IntegerType(int size)`
  Create a zero-valued signed IntegerType.
  `IntegerType(int size, boolean unsigned)`
  Create a zero-valued optionally unsigned IntegerType.
  `IntegerType(int size, long value)`
  Create a signed IntegerType with the given value.
  `IntegerType(int size, long value, boolean unsigned)`
  Create an optionally signed IntegerType with the given value.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static final int`
  `compare(long v1, long v2)`
  `static int`
  `compare(IntegerType v1, long v2)`
  Compares a IntegerType value with a `long` one.
  `static <T extends IntegerType>
  int`
  `compare(T v1, T v2)`
  Compares 2 derived `IntegerType` values - Note: a `null` value is considered greater than any non-`null` one (i.e., `null` values are "pushed" to the end of a sorted array / list of values)
  `double`
  `doubleValue()`
  `boolean`
  `equals(Object rhs)`
  `float`
  `floatValue()`
  `Object`
  `fromNative(Object nativeValue, FromNativeContext context)`
  Convert the given native object into its Java representation using the given context.
  `int`
  `hashCode()`
  `int`
  `intValue()`
  `long`
  `longValue()`
  `Class<?>`
  `nativeType()`
  Indicate the native type used by this converter.
  `void`
  `setValue(long value)`
  Change the value for this data.
  `Object`
  `toNative()`
  Convert this object into a supported native type.
  `String`
  `toString()`

  ### Methods inherited from class java.lang.Number

  `byteValue, shortValue`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### IntegerType

    public IntegerType(int size)
    Create a zero-valued signed IntegerType.

  - ### IntegerType

    public IntegerType(int size, boolean unsigned)
    Create a zero-valued optionally unsigned IntegerType.

  - ### IntegerType

    public IntegerType(int size, long value)
    Create a signed IntegerType with the given value.

  - ### IntegerType

    public IntegerType(int size, long value, boolean unsigned)
    Create an optionally signed IntegerType with the given value.

- ## Method Details

  - ### setValue

    public void setValue(long value)
    Change the value for this data.
    Parameters:
      `value` - value to set

  - ### toNative

    public Object toNative()
    Description copied from interface: `NativeMapped`
    Convert this object into a supported native type.
    Specified by:
      `toNative` in interface `NativeMapped`
    Returns:
      Java representation of the original Java object converted to a native type.

  - ### fromNative

    public Object fromNative(Object nativeValue, FromNativeContext context)
    Description copied from interface: `NativeMapped`
    Convert the given native object into its Java representation using the given context.
    Specified by:
      `fromNative` in interface `NativeMapped`
    Parameters:
      `nativeValue` - Java representation of the native type to be converted.
      `context` - Context in which the conversion is taking place.
    Returns:
      Converted object.

  - ### nativeType

    public Class<?> nativeType()
    Description copied from interface: `NativeMapped`
    Indicate the native type used by this converter.
    Specified by:
      `nativeType` in interface `NativeMapped`
    Returns:
      Java class representation of the native type.

  - ### intValue

    public int intValue()
    Specified by:
      `intValue` in class `Number`

  - ### longValue

    public long longValue()
    Specified by:
      `longValue` in class `Number`

  - ### floatValue

    public float floatValue()
    Specified by:
      `floatValue` in class `Number`

  - ### doubleValue

    public double doubleValue()
    Specified by:
      `doubleValue` in class `Number`

  - ### equals

    public boolean equals(Object rhs)
    Overrides:
      `equals` in class `Object`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### compare

    public static <T extends IntegerType> int compare(T v1, T v2)
    Compares 2 derived `IntegerType` values - Note: a `null` value is considered greater than any non-`null` one (i.e., `null` values are "pushed" to the end of a sorted array / list of values)
    Type Parameters:
      `T` - the derived integer type
    Parameters:
      `v1` - The 1st value
      `v2` - The 2nd value
    Returns:
      0 if values are equal - including if both are `null`, negative if 1st value less than 2nd one, positive otherwise. Note: the comparison uses the `longValue()`.
    See Also:
      - `compare(long, long)`

  - ### compare

    public static int compare(IntegerType v1, long v2)
    Compares a IntegerType value with a `long` one. Note: if the IntegerType value is `null` then it is consider greater than any `long` value.
    Parameters:
      `v1` - The `IntegerType` value
      `v2` - The `long` value
    Returns:
      0 if values are equal, negative if 1st value less than 2nd one, positive otherwise. Note: the comparison uses the `longValue()`.
    See Also:
      - `compare(long, long)`

  - ### compare

    public static final int compare(long v1, long v2)