Package com.ericsson.otp.erlang
Class OtpErlangTuple
- java.lang.Object
-
- com.ericsson.otp.erlang.OtpErlangObject
-
- com.ericsson.otp.erlang.OtpErlangTuple
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
public class OtpErlangTuple extends OtpErlangObject
Provides a Java representation of Erlang tuples. Tuples are created from one or more arbitrary Erlang terms.The arity of the tuple is the number of elements it contains. Elements are indexed from 0 to (arity-1) and can be retrieved individually by using the appropriate index.
- 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 Constructor Description OtpErlangTuple(OtpErlangObject elem)
Create a unary tuple containing the given element.OtpErlangTuple(OtpErlangObject[] elems)
Create a tuple from an array of terms.OtpErlangTuple(OtpErlangObject[] elems, int start, int count)
Create a tuple from an array of terms.OtpErlangTuple(OtpInputStream buf)
Create a tuple from a stream containing an tuple encoded in Erlang external format.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
arity()
Get the arity of the tuple.<T> OtpErlangObject
bind(T binds)
Make new Erlang term replacing variables with the respective values from bindings argument(s).java.lang.Object
clone()
protected int
doHashCode()
OtpErlangObject
elementAt(int i)
Get the specified element from the tuple.OtpErlangObject[]
elements()
Get all the elements from the tuple as an array.void
encode(OtpOutputStream buf)
Convert this tuple to the equivalent Erlang external representation.boolean
equals(java.lang.Object o)
Determine if two tuples are equal.<T> boolean
match(OtpErlangObject term, T bindings)
Perform match operation against given term.java.lang.String
toString()
Get the string representation of the tuple.-
Methods inherited from class com.ericsson.otp.erlang.OtpErlangObject
decode, hashCode
-
-
-
-
Constructor Detail
-
OtpErlangTuple
public OtpErlangTuple(OtpErlangObject elem)
Create a unary tuple containing the given element.- Parameters:
elem
- the element to create the tuple from.- Throws:
java.lang.IllegalArgumentException
- if the element is null.
-
OtpErlangTuple
public OtpErlangTuple(OtpErlangObject[] elems)
Create a tuple from an array of terms.- Parameters:
elems
- the array of terms to create the tuple from.- Throws:
java.lang.IllegalArgumentException
- if the array is empty (null) or contains null elements.
-
OtpErlangTuple
public OtpErlangTuple(OtpErlangObject[] elems, int start, int count)
Create a tuple from an array of terms.- Parameters:
elems
- the array of terms to create the tuple from.start
- the offset of the first term to insert.count
- the number of terms to insert.- Throws:
java.lang.IllegalArgumentException
- if the array is empty (null) or contains null elements.
-
OtpErlangTuple
public OtpErlangTuple(OtpInputStream buf) throws OtpErlangDecodeException
Create a tuple from a stream containing an tuple encoded in Erlang external format.- Parameters:
buf
- the stream containing the encoded tuple.- Throws:
OtpErlangDecodeException
- if the buffer does not contain a valid external representation of an Erlang tuple.
-
-
Method Detail
-
arity
public int arity()
Get the arity of the tuple.- Returns:
- the number of elements contained in the tuple.
-
elementAt
public OtpErlangObject elementAt(int i)
Get the specified element from the tuple.- Parameters:
i
- the index of the requested element. Tuple elements are numbered as array elements, starting at 0.- Returns:
- the requested element, of null if i is not a valid element index.
-
elements
public OtpErlangObject[] elements()
Get all the elements from the tuple as an array.- Returns:
- an array containing all of the tuple's elements.
-
toString
public java.lang.String toString()
Get the string representation of the tuple.- Specified by:
toString
in classOtpErlangObject
- Returns:
- the string representation of the tuple.
-
encode
public void encode(OtpOutputStream buf)
Convert this tuple to the equivalent Erlang external representation.- Specified by:
encode
in classOtpErlangObject
- Parameters:
buf
- an output stream to which the encoded tuple should be written.
-
equals
public boolean equals(java.lang.Object o)
Determine if two tuples are equal. Tuples are equal if they have the same arity and all of the elements are equal.- Specified by:
equals
in classOtpErlangObject
- Parameters:
o
- the tuple to compare to.- Returns:
- true if the tuples have the same arity and all the elements are equal.
-
match
public <T> boolean match(OtpErlangObject term, T bindings)
Description copied from class:OtpErlangObject
Perform match operation against given term.- Overrides:
match
in classOtpErlangObject
- Parameters:
term
- the object to matchbindings
- variable bindings- Returns:
- true if match succeeded
-
bind
public <T> OtpErlangObject bind(T binds) throws OtpErlangException
Description copied from class:OtpErlangObject
Make new Erlang term replacing variables with the respective values from bindings argument(s).- Overrides:
bind
in classOtpErlangObject
- Parameters:
binds
- variable bindings- Returns:
- new term
- Throws:
OtpErlangException
-
doHashCode
protected int doHashCode()
- Overrides:
doHashCode
in classOtpErlangObject
-
clone
public java.lang.Object clone()
- Overrides:
clone
in classOtpErlangObject
-
-