SSF.OS.BGP4.Path
Class ClusterList

java.lang.Object
  |
  +--SSF.OS.BGP4.Path.Attribute
        |
        +--SSF.OS.BGP4.Path.ClusterList
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable

public class ClusterList
extends Attribute

The cluster list path attribute. It is used to record the path that a route has taken through the route reflection hierarchy. It is optional and non-transitive.

See Also:
Serialized Form

Field Summary
static java.lang.String dmlname
          The name of the path attribute as a DML attribute.
 java.util.ArrayList list
          The list of cluster numbers which represents the path that a route has taken through the route reflection hierarchy.
static java.lang.String name
          The name of the attribute as a string.
static int TYPECODE
          The cluster list path attribute type code.
 
Fields inherited from class SSF.OS.BGP4.Path.Attribute
dmlnames, MAX_TYPECODE, MIN_TYPECODE, names, nhidmlnames, undefined
 
Constructor Summary
ClusterList()
          Empty constructor.
ClusterList(java.util.ArrayList l)
          Constructs a cluster list path attribute given a list of cluster numbers.
 
Method Summary
 void append(long cnum)
          Appends a cluster number to the cluster list.
 int bytecount()
          Returns the number of octets (bytes) needed to represent this cluster list path attribute in an update message.
 boolean contains(long cnum)
          Determines whether or not the cluster list contains a given cluster number.
 Attribute copy()
          Constructs and returns a copy of the attribute.
 boolean equals(Attribute attrib)
          Determines whether or not this path attribute is equivalent to another.
 int length()
          Returns the length of the cluster list (number of cluster numbers that it contains).
 boolean opt()
          Returns whether the path attribute is optional (true) or well-known (false).
 boolean partial()
          Returns whether or not the information contained in the optional transitive attribute is partial (true) or complete (false).
 void readExternal(java.io.DataInput in)
          Reads the contents of this object from a serialization stream.
 void readExternal(java.io.ObjectInput in)
           
 java.lang.String toString()
          Returns the cluster list as a string.
 boolean trans()
          Returns whether an optional attribute is transitive (true) or non-transitive (false).
 void writeExternal(java.io.DataOutput out)
          Writes the contents of this object to a serialization stream.
 void writeExternal(java.io.ObjectOutput out)
          Writes the contents of this object to a data stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TYPECODE

public static final int TYPECODE
The cluster list path attribute type code.

See Also:
Constant Field Values

name

public static final java.lang.String name
The name of the attribute as a string.

See Also:
Constant Field Values

dmlname

public static final java.lang.String dmlname
The name of the path attribute as a DML attribute.

See Also:
Constant Field Values

list

public java.util.ArrayList list
The list of cluster numbers which represents the path that a route has taken through the route reflection hierarchy.

Constructor Detail

ClusterList

public ClusterList()
Empty constructor. Used to deserialize this object.


ClusterList

public ClusterList(java.util.ArrayList l)
Constructs a cluster list path attribute given a list of cluster numbers.

Parameters:
l - A list of cluster numbers.
Method Detail

copy

public Attribute copy()
Constructs and returns a copy of the attribute.

Specified by:
copy in class Attribute
Returns:
a copy of the attribute

opt

public final boolean opt()
Description copied from class: Attribute
Returns whether the path attribute is optional (true) or well-known (false).

Specified by:
opt in class Attribute

trans

public final boolean trans()
Description copied from class: Attribute
Returns whether an optional attribute is transitive (true) or non-transitive (false). For well-known attributes it must be true.

Specified by:
trans in class Attribute

partial

public final boolean partial()
Description copied from class: Attribute
Returns whether or not the information contained in the optional transitive attribute is partial (true) or complete (false). For well-known attributes and for optional non-transitive attributes, it must be false.

Specified by:
partial in class Attribute

length

public int length()
Returns the length of the cluster list (number of cluster numbers that it contains).

Returns:
the length of the cluster list

contains

public final boolean contains(long cnum)
Determines whether or not the cluster list contains a given cluster number.

Parameters:
cnum - The cluster number to look for in the cluster list.
Returns:
true only if the cluster number is in the cluster list

append

public final void append(long cnum)
Appends a cluster number to the cluster list.

Parameters:
cnum - The cluster number to append.

bytecount

public int bytecount()
Returns the number of octets (bytes) needed to represent this cluster list path attribute in an update message. The number is the sum of the two octets needed for the attribute type (which contains attribute flags and the attribute type code), the one or two octets needed for the attribute length, and the variable number of octets needed for the attribute value.

Specified by:
bytecount in class Attribute
Returns:
the number of octets (bytes) needed to represent this cluster list path attribute in an update message

equals

public boolean equals(Attribute attrib)
Determines whether or not this path attribute is equivalent to another.

Specified by:
equals in class Attribute
Parameters:
attrib - A path attribute to compare to this one.
Returns:
true only if the two attributes are equivalent

toString

public final java.lang.String toString()
Returns the cluster list as a string. The string is a list of integers separated by spaces. There is no space following the last integer.

Overrides:
toString in class java.lang.Object
Returns:
the cluster list as a string

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Description copied from class: Attribute
Writes the contents of this object to a data stream.

Specified by:
writeExternal in interface java.io.Externalizable
Overrides:
writeExternal in class Attribute
Throws:
java.io.IOException - if there's an error writing the data

writeExternal

public void writeExternal(java.io.DataOutput out)
                   throws java.io.IOException
Writes the contents of this object to a serialization stream.

Overrides:
writeExternal in class Attribute
Throws:
java.io.IOException - if there's an error writing the data

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Overrides:
readExternal in class Attribute
java.io.IOException
java.lang.ClassNotFoundException

readExternal

public void readExternal(java.io.DataInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Reads the contents of this object from a serialization stream.

Overrides:
readExternal in class Attribute
Throws:
java.io.IOException - if there's an error reading in the data
java.lang.ClassNotFoundException - if a class name is unrecognized