Package com.ericsson.otp.erlang

## Class OtpErlangLong

- java.lang.Object
- - com.ericsson.otp.erlang.OtpErlangObject
  - - com.ericsson.otp.erlang.OtpErlangLong

All Implemented Interfaces:
  `java.io.Serializable`, `java.lang.Cloneable`

Direct Known Subclasses:
  `OtpErlangByte`, `OtpErlangChar`, `OtpErlangInt`, `OtpErlangShort`, `OtpErlangUInt`, `OtpErlangUShort`

    public class OtpErlangLong
    extends OtpErlangObject

Provides a Java representation of Erlang integral types. Erlang does not distinguish between different integral types, however this class and its subclasses `OtpErlangByte`, `OtpErlangChar`, `OtpErlangInt` , and `OtpErlangShort` attempt to map the Erlang types onto the various Java integral types. Two additional classes, `OtpErlangUInt` and `OtpErlangUShort` are provided for Corba compatibility. See the documentation for IC for more information.

See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class com.ericsson.otp.erlang.OtpErlangObject

`OtpErlangObject.Hash`

### Field Summary

### Fields inherited from class com.ericsson.otp.erlang.OtpErlangObject

`hashCodeValue`

### Constructor Summary

Constructors
`OtpErlangLong​(long l)` Create an Erlang integer from the given value.
`OtpErlangLong​(OtpInputStream buf)` Create an Erlang integer from a stream containing an integer encoded in Erlang external format.
`OtpErlangLong​(java.math.BigInteger v)` Create an Erlang integer from the given value.

### Method Summary

All Methods Instance Methods Concrete Methods
`java.math.BigInteger` `bigIntegerValue()` Get this number as a BigInteger.
`int` `bitLength()` Returns the number of bits in the minimal two's-complement representation of this BigInteger, excluding a sign bit.
`byte` `byteValue()` Get this number as a byte.
`char` `charValue()` Get this number as a char.
`protected int` `doHashCode()`
`void` `encode​(OtpOutputStream buf)` Convert this number to the equivalent Erlang external representation.
`boolean` `equals​(java.lang.Object o)` Determine if two numbers are equal.
`int` `intValue()` Get this number as an int.
`boolean` `isLong()` Determine if this value can be represented as a long without truncation.
`boolean` `isULong()` Determine if this value can be represented as an unsigned long without truncation, that is if the value is non-negative and its bit pattern completely fits in a long.
`long` `longValue()` Get this number as a long, or rather truncate all but the least significant 64 bits from the 2's complement representation of this number and return them as a long.
`short` `shortValue()` Get this number as a short.
`int` `signum()` Return the signum function of this object.
`java.lang.String` `toString()` Get the string representation of this number.
`int` `uIntValue()` Get this number as a non-negative int.
`short` `uShortValue()` Get this number as a non-negative short.

### Methods inherited from class com.ericsson.otp.erlang.OtpErlangObject

`bind, clone, decode, hashCode, match`

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

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

### Constructor Detail

#### OtpErlangLong

    public OtpErlangLong​(long l)

Create an Erlang integer from the given value.

Parameters:
  `l` - the long value to use.

#### OtpErlangLong

    public OtpErlangLong​(java.math.BigInteger v)

Create an Erlang integer from the given value.

Parameters:
  `v` - the big integer value to use.

#### OtpErlangLong

    public OtpErlangLong​(OtpInputStream buf)
                  throws OtpErlangDecodeException

Create an Erlang integer from a stream containing an integer encoded in Erlang external format.

Parameters:
  `buf` - the stream containing the encoded value.
Throws:
  `OtpErlangDecodeException` - if the buffer does not contain a valid external representation of an Erlang integer.

### Method Detail

#### bigIntegerValue

    public java.math.BigInteger bigIntegerValue()

Get this number as a BigInteger.

Returns:
  the value of this number, as a BigInteger.

#### longValue

    public long longValue()

Get this number as a long, or rather truncate all but the least significant 64 bits from the 2's complement representation of this number and return them as a long.

Returns:
  the value of this number, as a long.

#### isLong

    public boolean isLong()

Determine if this value can be represented as a long without truncation.

Returns:
  true if this value fits in a long, false otherwise.

#### isULong

    public boolean isULong()

Determine if this value can be represented as an unsigned long without truncation, that is if the value is non-negative and its bit pattern completely fits in a long.

Returns:
  true if this value is non-negative and fits in a long false otherwise.

#### bitLength

    public int bitLength()

Returns the number of bits in the minimal two's-complement representation of this BigInteger, excluding a sign bit.

Returns:
  number of bits in the minimal two's-complement representation of this BigInteger, excluding a sign bit.

#### signum

    public int signum()

Return the signum function of this object.

Returns:
  -1, 0 or 1 as the value is negative, zero or positive.

#### intValue

    public int intValue()
                 throws OtpErlangRangeException

Get this number as an int.

Returns:
  the value of this number, as an int.
Throws:
  `OtpErlangRangeException` - if the value is too large to be represented as an int.

#### uIntValue

    public int uIntValue()
                  throws OtpErlangRangeException

Get this number as a non-negative int.

Returns:
  the value of this number, as an int.
Throws:
  `OtpErlangRangeException` - if the value is too large to be represented as an int, or if the value is negative.

#### shortValue

    public short shortValue()
                     throws OtpErlangRangeException

Get this number as a short.

Returns:
  the value of this number, as a short.
Throws:
  `OtpErlangRangeException` - if the value is too large to be represented as a short.

#### uShortValue

    public short uShortValue()
                      throws OtpErlangRangeException

Get this number as a non-negative short.

Returns:
  the value of this number, as a short.
Throws:
  `OtpErlangRangeException` - if the value is too large to be represented as a short, or if the value is negative.

#### charValue

    public char charValue()
                   throws OtpErlangRangeException

Get this number as a char.

Returns:
  the char value of this number.
Throws:
  `OtpErlangRangeException` - if the value is too large to be represented as a char.

#### byteValue

    public byte byteValue()
                   throws OtpErlangRangeException

Get this number as a byte.

Returns:
  the byte value of this number.
Throws:
  `OtpErlangRangeException` - if the value is too large to be represented as a byte.

#### toString

    public java.lang.String toString()

Get the string representation of this number.

Specified by:
  `toString` in class `OtpErlangObject`
Returns:
  the string representation of this number.

#### encode

    public void encode​(OtpOutputStream buf)

Convert this number to the equivalent Erlang external representation.

Specified by:
  `encode` in class `OtpErlangObject`
Parameters:
  `buf` - an output stream to which the encoded number should be written.

#### equals

    public boolean equals​(java.lang.Object o)

Determine if two numbers are equal. Numbers are equal if they contain the same value.

Specified by:
  `equals` in class `OtpErlangObject`
Parameters:
  `o` - the number to compare to.
Returns:
  true if the numbers have the same value.

#### doHashCode

    protected int doHashCode()

Overrides:
  `doHashCode` in class `OtpErlangObject`