edu.nps.moves.dismobile
Class EntityID

java.lang.Object
  extended by edu.nps.moves.dismobile.EntityID
All Implemented Interfaces:
java.io.Serializable

public class EntityID
extends java.lang.Object
implements java.io.Serializable

Each entity in a given DIS simulation application shall be given an entity identifier number unique to all other entities in that application. This identifier number is valid for the duration of the exercise; however, entity identifier numbers may be reused when all possible numbers have been exhausted. No entity shall have an entity identifier number of NO_ENTITY, ALL_ENTITIES, or RQST_ASSIGN_ID. The entity iden- tifier number need not be registered or retained for future exercises. The entity identifier number shall be specified by a 16-bit unsigned integer. An entity identifier number equal to zero with valid site and application identification shall address a simulation application. An entity identifier number equal to ALL_ENTITIES shall mean all entities within the specified site and application. An entity identifier number equal to RQST_ASSIGN_ID allows the receiver of the create entity to define the entity identifier number of the new entity. Copyright (c) 2008-2010, MOVES Institute, Naval Postgraduate School. All rights reserved. This work is licensed under the BSD open source license, available at https://www.movesinstitute.org/licenses/bsd.html

Author:
DMcG
See Also:
Serialized Form

Field Summary
protected  int application
          The application ID
protected  int entity
          the entity ID
protected  int site
          The site ID
 
Constructor Summary
EntityID()
          Constructor
 
Method Summary
 boolean equals(java.lang.Object obj)
           
 boolean equalsImpl(java.lang.Object obj)
          Compare all fields that contribute to the state, ignoring transient and static fields, for this and the supplied object
 int getApplication()
           
 int getEntity()
           
 int getMarshalledSize()
           
 int getSite()
           
 int hashCode()
          Override of base class hashCode.
 void marshal(java.nio.ByteBuffer buff)
          Packs a Pdu into the ByteBuffer.
 void marshal(java.io.DataOutputStream dos)
           
 void setApplication(int pApplication)
           
 void setEntity(int pEntity)
           
 void setSite(int pSite)
           
 void unmarshal(java.nio.ByteBuffer buff)
          Unpacks a Pdu from the underlying data.
 void unmarshal(java.io.DataInputStream dis)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

site

protected int site
The site ID


application

protected int application
The application ID


entity

protected int entity
the entity ID

Constructor Detail

EntityID

public EntityID()
Constructor

Method Detail

getMarshalledSize

public int getMarshalledSize()

setSite

public void setSite(int pSite)

getSite

public int getSite()

setApplication

public void setApplication(int pApplication)

getApplication

public int getApplication()

setEntity

public void setEntity(int pEntity)

getEntity

public int getEntity()

marshal

public void marshal(java.io.DataOutputStream dos)

unmarshal

public void unmarshal(java.io.DataInputStream dis)

marshal

public void marshal(java.nio.ByteBuffer buff)
Packs a Pdu into the ByteBuffer.

Parameters:
buff - The ByteBuffer at the position to begin writing
Throws:
java.nio.BufferOverflowException - if buff is too small
java.nio.ReadOnlyBufferException - if buff is read only
Since:
??
See Also:
ByteBuffer

unmarshal

public void unmarshal(java.nio.ByteBuffer buff)
Unpacks a Pdu from the underlying data.

Parameters:
buff - The ByteBuffer at the position to begin reading
Throws:
java.nio.BufferUnderflowException - if buff is too small
Since:
??
See Also:
ByteBuffer

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

equalsImpl

public boolean equalsImpl(java.lang.Object obj)
Compare all fields that contribute to the state, ignoring transient and static fields, for this and the supplied object

Parameters:
obj - the object to compare to
Returns:
true if the objects are equal, false otherwise.

hashCode

public int hashCode()
Override of base class hashCode. This is convienent to use when looking up entities in a hash table. It uses the application and entity IDs to fill out the 32 bits. The idea is to get a "pretty close" to unique hashcode for each entity ID in 32 bits, and the best way to do that is leave out the site ID while keeping the rest, which tends to be more unique.

Overrides:
hashCode in class java.lang.Object