com.ericsson.otp.erlang
Class OtpErlangObject

java.lang.Object
  extended by com.ericsson.otp.erlang.OtpErlangObject
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
OtpErlangAtom, OtpErlangBitstr, OtpErlangDouble, OtpErlangExternalFun, OtpErlangFun, OtpErlangList, OtpErlangLong, OtpErlangMap, OtpErlangPid, OtpErlangPort, OtpErlangRef, OtpErlangString, OtpErlangTuple

public abstract class OtpErlangObject
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable

Base class of the Erlang data type classes. This class is used to represent an arbitrary Erlang term.

See Also:
Serialized Form

Nested Class Summary
protected static class OtpErlangObject.Hash
           
 
Field Summary
protected  int hashCodeValue
           
 
Constructor Summary
OtpErlangObject()
           
 
Method Summary
<T> OtpErlangObject
bind(T binds)
          Make new Erlang term replacing variables with the respective values from bindings argument(s).
 java.lang.Object clone()
           
static OtpErlangObject decode(OtpInputStream buf)
          Read binary data in the Erlang external format, and produce a corresponding Erlang data type object.
protected  int doHashCode()
           
abstract  void encode(OtpOutputStream buf)
          Convert the object according to the rules of the Erlang external format.
abstract  boolean equals(java.lang.Object o)
          Determine if two Erlang objects are equal.
 int hashCode()
           
<T> boolean
match(OtpErlangObject term, T binds)
          Perform match operation against given term.
abstract  java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

hashCodeValue

protected int hashCodeValue
Constructor Detail

OtpErlangObject

public OtpErlangObject()
Method Detail

toString

public abstract java.lang.String toString()
Overrides:
toString in class java.lang.Object
Returns:
the printable representation of the object. This is usually similar to the representation used by Erlang for the same type of object.

encode

public abstract void encode(OtpOutputStream buf)
Convert the object according to the rules of the Erlang external format. This is mainly used for sending Erlang terms in messages, however it can also be used for storing terms to disk.

Parameters:
buf - an output stream to which the encoded term should be written.

decode

public static OtpErlangObject decode(OtpInputStream buf)
                              throws OtpErlangDecodeException
Read binary data in the Erlang external format, and produce a corresponding Erlang data type object. This method is normally used when Erlang terms are received in messages, however it can also be used for reading terms from disk.

Parameters:
buf - an input stream containing one or more encoded Erlang terms.
Returns:
an object representing one of the Erlang data types.
Throws:
OtpErlangDecodeException - if the stream does not contain a valid representation of an Erlang term.

equals

public abstract boolean equals(java.lang.Object o)
Determine if two Erlang objects are equal. In general, Erlang objects are equal if the components they consist of are equal.

Overrides:
equals in class java.lang.Object
Parameters:
o - the object to compare to.
Returns:
true if the objects are identical.

match

public <T> boolean match(OtpErlangObject term,
                         T binds)
Perform match operation against given term.

Parameters:
term - the object to match
binds - variable bindings
Returns:
true if match succeeded

bind

public <T> OtpErlangObject bind(T binds)
                     throws OtpErlangException
Make new Erlang term replacing variables with the respective values from bindings argument(s).

Parameters:
binds - variable bindings
Returns:
new term
Throws:
OtpErlangException

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

doHashCode

protected int doHashCode()

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object