# Class OtpErlangPort

java.lang.Object
com.ericsson.otp.erlang.OtpErlangObject
com.ericsson.otp.erlang.OtpErlangPort

All Implemented Interfaces:
  `Serializable, Cloneable`

public class OtpErlangPort extends OtpErlangObject
Provides a Java representation of Erlang ports.

See Also:
  - Serialized Form

## Nested Class Summary

### Nested classes/interfaces inherited from class OtpErlangObject

`OtpErlangObject.Hash`

## Field Summary

### Fields inherited from class OtpErlangObject

`hashCodeValue`

## Constructor Summary

Constructors
Constructor
Description
`OtpErlangPort(int tag, String node, long id, int creation)`
Create an Erlang port from its components.
`OtpErlangPort(OtpInputStream buf)`
Create an Erlang port from a stream containing a port encoded in Erlang external format.
`OtpErlangPort(String node, long id, int creation)`
Create an Erlang port from its components.

## Method Summary

Modifier and Type
Method
Description
`int`
`creation()`
Get the creation number from the port.
`protected int`
`doHashCode()`
`void`
`encode(OtpOutputStream buf)`
Convert this port to the equivalent Erlang external representation.
`boolean`
`equals(Object o)`
Determine if two ports are equal.
`long`
`id()`
Get the id number from the port.
`String`
`node()`
Get the node name from the port.
`protected int`
`tag()`
`String`
`toString()`
Get the string representation of the port.

### Methods inherited from class OtpErlangObject

`bind, clone, decode, hashCode, match`

### Methods inherited from class Object

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

## Constructor Details

### OtpErlangPort

public OtpErlangPort(OtpInputStream buf) throws OtpErlangDecodeException
Create an Erlang port from a stream containing a port encoded in Erlang external format.

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

### OtpErlangPort

public OtpErlangPort(String node, long id, int creation)
Create an Erlang port from its components.

Parameters:
  `node` - the nodename.
  `id` - an arbitrary number. Only the low order 28 bits will be used.
  `creation` - node incarnation number. Avoid values 0 to 3.

### OtpErlangPort

public OtpErlangPort(int tag, String node, long id, int creation)
Create an Erlang port from its components.

Parameters:
  `tag` - the external format to be compliant with. OtpExternal.portTag where only a subset of the bits are used (see other constructor) OtpExternal.newPortTag where all 32 bits of id and creation are significant. newPortTag can only be decoded by OTP-19 and newer.
  `node` - the nodename.
  `id` - an arbitrary number. Only the low order 28 bits will be used.
  `creation` - another arbitrary number.

## Method Details

### tag

protected int tag()

### id

public long id()
Get the id number from the port.

Returns:
  the id number from the port.

### creation

public int creation()
Get the creation number from the port.

Returns:
  the creation number from the port.

### node

public String node()
Get the node name from the port.

Returns:
  the node name from the port.

### toString

public String toString()
Get the string representation of the port. Erlang ports are printed as #Port<node.id>.

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

### encode

public void encode(OtpOutputStream buf)
Convert this port to the equivalent Erlang external representation.

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

### equals

public boolean equals(Object o)
Determine if two ports are equal. Ports are equal if their components are equal.

Specified by:
  `equals` in class `OtpErlangObject`
Parameters:
  `o` - the other port to compare to.
Returns:
  true if the ports are equal, false otherwise.

### doHashCode

protected int doHashCode()

Overrides:
  `doHashCode` in class `OtpErlangObject`