public class NetChannelLocation
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable
Instances of this class hold location information for a networked
ChannelInput
object. Instances of the class hold sufficient
information for a networked ChannelOutput
object to establish
a connection to the networked ChannelInput
object.
Instances of this class may either be constructed by the
jcsp.net
user or by the networking infrastructure.
Modifier and Type | Field and Description |
---|---|
private NodeAddressID |
channelAddress
The
NodeAddressID on which the channel's Node is listening. |
private java.lang.String |
channelLabel
The label, if any, assigned to a channel's VCN.
|
private NodeID |
channelNode
The
NodeID of the channel's Node. |
private long |
vcn
The VCN of a channel, if known.
|
Modifier | Constructor and Description |
---|---|
protected |
NetChannelLocation(NetChannelLocation other)
This is a protected constructor which takes another
NetChannelLocation object and "clones" it into this one. |
|
NetChannelLocation(NodeAddressID channelAddress,
java.lang.String channelLabel)
Constructor which takes a
NodeAddressID on which the
channel's Node is listening and the label assigned to the channel's
Virtual Channel Number (VCN). |
(package private) |
NetChannelLocation(NodeID channelNode,
long vcn)
Package private constructor which takes the
NodeID of the
Node hosting the networked ChannelInput object and a
long holding the VCN of the channel. |
|
NetChannelLocation(NodeID channelNode,
java.lang.String channelLabel)
Constructor which takes the
NodeID of the Node hosting
the networked ChannelInput object and the label assigned
to the channel's Virtual Channel Number (VCN). |
Modifier and Type | Method and Description |
---|---|
protected boolean |
checkEqual(NetChannelLocation other)
This method is used by the
equals(Object) method
to determine whether another object is equal to the one on which
it is invoked. |
java.lang.Object |
clone()
Returns a clone of the instance of this class.
|
boolean |
equals(java.lang.Object o)
Returns whether this object is equal to another object.
|
NodeAddressID |
getChannelAddress()
Public accessor for the channel's address, if held.
|
java.lang.String |
getChannelLabel()
Public accessor for the channel label property.
|
NodeID |
getChannelNodeID()
Public accessor for the channel label property.
|
java.lang.String |
getStringID()
Returns a String ID for this
NetChannelLocation object. |
(package private) long |
getVCN()
Package level accessor for the channel's VCN if held.
|
int |
hashCode()
Return a hashcode for this object.
|
boolean |
refresh()
This method requests that the instance of this class refresh
its information.
|
protected void |
refreshFrom(NetChannelLocation other)
This method refreshes the fields in the instance of this object to
equal the fields in the supplied object.
|
(package private) void |
setLocationDetails(NodeID nodeID,
long vcn)
Package level mutator for the channel's actual location details.
|
private java.lang.String channelLabel
private long vcn
private NodeID channelNode
NodeID
of the channel's Node.
This should be null
if channelAddress
is
not null
.private NodeAddressID channelAddress
NodeAddressID
on which the channel's Node is listening.
This should be null
if channelNode
is
not null
.public NetChannelLocation(NodeID channelNode, java.lang.String channelLabel) throws java.lang.IllegalArgumentException
Constructor which takes the NodeID
of the Node hosting
the networked ChannelInput
object and the label assigned
to the channel's Virtual Channel Number (VCN).
channelNode
- the NodeID
of the Node hosting the
read end of the channel.channelLabel
- the label assigned to the channel's Virtual
Channel Number (VCN).java.lang.IllegalArgumentException
public NetChannelLocation(NodeAddressID channelAddress, java.lang.String channelLabel) throws java.lang.IllegalArgumentException
Constructor which takes a NodeAddressID
on which the
channel's Node is listening and the label assigned to the channel's
Virtual Channel Number (VCN).
This constructor is intended to be used by code that wishes to connect
to a ChannelInput
running on a Node to which a
Link
has not yet been established. An address of the Node
must be known by some means. For example, with a JCSP network running
over TCP/IP, a program may prompt the user for an IP address to which
to connect.
channelAddress
- a NodeAddressID
on which the channel's
Node is listening.channelLabel
- the label assigned to the channel's VCN.java.lang.IllegalArgumentException
NetChannelLocation(NodeID channelNode, long vcn) throws java.lang.IllegalArgumentException
Package private constructor which takes the NodeID
of the
Node hosting the networked ChannelInput
object and a
long
holding the VCN of the channel.
Users of the jcsp.net
package cannot use this constructor.
It is intended to be used by the infrastructure for creating an instance
of the class in order to return it to the user.
When used like this, the class may seem to be the same as the
ChannelID
class, however, this class is publicly
visible outside the jcsp.net
.
channelNode
- the NodeID
of the Node hosting the
read end of the channel.vcn
- the VCN of the channeljava.lang.IllegalArgumentException
protected NetChannelLocation(NetChannelLocation other) throws java.lang.IllegalArgumentException
This is a protected constructor which takes another
NetChannelLocation
object and "clones" it into this one.
This allows sub-classes to adopt the field values of an instance of
this class by passing a reference of it to this constructor.
other
- Another NetChannelLocation
to "clone"
into this one.java.lang.IllegalArgumentException
- iff the parameter is null
.public final java.lang.String getChannelLabel()
Public accessor for the channel label property.
null
.public final NodeAddressID getChannelAddress()
Public accessor for the channel's address, if held.
NodeAddressID
on which the channel's Node is
listening. If the channel's Node's NodeID
is
known, then this will return null
.public final NodeID getChannelNodeID()
Public accessor for the channel label property.
NodeID
of the channel's Node, if known,
else null
.public boolean refresh()
This method requests that the instance of this class refresh its information. This class does not actually do anything when this method is called, however, instances of subclasses may take the opportunity to refresh their data.
An example, of when this might be useful is if this class were
extended as part of a name service that resolves names to
NetChannelLocation
objects. If a user of an instance
of this extended version wanted to check that the data were still
up to date, it would call this method which would then check the
information with a name service.
true
if any information has changed, otherwise
false
.public final java.lang.String getStringID()
Returns a String ID for this
NetChannelLocation
object.
This method does not need to be used by normal JCSP users.
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
Returns a clone of the instance of this class. All mutable fields are also cloned.
clone
in class java.lang.Object
java.lang.CloneNotSupportedException
public final boolean equals(java.lang.Object o)
Returns whether this object is equal to another object.
equals
in class java.lang.Object
true
iff the supplied object is equal.public final int hashCode()
hashCode
in class java.lang.Object
int
hash code.protected final void refreshFrom(NetChannelLocation other) throws java.lang.IllegalArgumentException
This method refreshes the fields in the instance of this object to
equal the fields in the supplied object. Only members of the
NetChannelLocation
class are copied and not members
added by sub-classes.
other
- Another NetChannelLocation
to "clone"
into this one.java.lang.IllegalArgumentException
- iff the parameter is null
.protected boolean checkEqual(NetChannelLocation other)
This method is used by the equals(Object)
method
to determine whether another object is equal to the one on which
it is invoked.
This should be used by sub-classes as they cannot override the equals method.
other
- the NetChannelLocation
object to
compare with this object.true
if the other object is equal to this one.long getVCN()
Package level accessor for the channel's VCN if held.
Users of jcsp.net
should not have any control over VCN
allocation so this accessor is not publicly accessible.
void setLocationDetails(NodeID nodeID, long vcn)
Package level mutator for the channel's actual location details. The details can only be set if the current NodeID held is null.
nodeID
- the NodeID
of the channel.vcn
- the VCN of the channel.