mil.navy.nps.dis
Class FixedDatum

java.lang.Object
  extended bymil.navy.nps.dis.PduElement
      extended bymil.navy.nps.dis.FixedDatum
All Implemented Interfaces:
java.lang.Cloneable, SerializationInterface

public class FixedDatum
extends PduElement

Special data record subclass of PDUElement.

Version:
1.0
Author:
Don McGregor (http://www.npsnet.org/~mcgredo)
Location:
Web: http://www.web3d.org/WorkingGroups/vrtp/mil/navy/nps/dis/FixedDatum.java
or locally: ~/mil/navy/nps/dis/FixedDatum.java
Hierarchy Diagram:
Summary:
This record is constructed from fixed data types and their values.
Explanation
The FixedDatum is usually kept as a part of the DataPdu. It contains only an ID and a 32-bit value.

This is a subclass of the PduElement class, the abstract class that all parts of a PDU inherit from. It knows how to serialize, deserialize, and clone itself. It is described on pp 108-109 in the DIS standard.

History:
15Nov96 /Don McGregor /New
10Mar97 /Don McGregor /Changes for javadoc compliance
16Apr97 /Don McGregor /PrintStream passed to printValues
8Dec97 /Ronan Fauglas /changes for documentation templates + complements in documentation
11Dec97 /Ronan Fauglas /changes access methods names from "variable()" to "getVariable()"
References:
DIS Data Dictionary: Fixed Datum Record Record
DIS specification : IEEE 1278.1, 5.3.20
See Also:
PduElement

Field Summary
protected  int fixedDatumID
          The fixed datum id shall be represented by a 32-bit enumeration.
static int sizeOf
          Constant value--size of a Fixed Datum Record; here :sizeOf = 8 bytes.
protected  int value
          This field shall specify the value of fixed datum indicated by the fixed datum types.
 
Constructor Summary
FixedDatum()
          Default constructor--fills with zeros for all values.
FixedDatum(int pFixedDatumID, int pValue)
          Constructs a new FixedDatum with the values specfied in parameters.
 
Method Summary
 java.lang.Object clone()
          Makes deep copies of all the instance variables, so we don't have two objects pointing to the same data.
 void deSerialize(java.io.DataInputStream inputStream)
          Deserialize our data from the input stream.
 int getFixedDatumID()
           
 int getValue()
           
 int length()
          Returns the length of the object when serialized in a stream.
 void printValues(int indentLevel, java.io.PrintStream printStream)
          Prints the generated serialized object for debugging.
 void serialize(java.io.DataOutputStream outputStream)
          Serialize our data out to the stream.
 void setFixedDatumID(int pFixedDatumID)
           
 void setValue(int pValue)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fixedDatumID

protected int fixedDatumID
The fixed datum id shall be represented by a 32-bit enumeration.
Value:
Enumeration; see references below for values.
References:
DIS Data Dictionary :Datum ID Field
see section 7 in the EBV-DOC


value

protected int value
This field shall specify the value of fixed datum indicated by the fixed datum types.
References:
DIS Data Dictionary :Fixed Datum Value Field


sizeOf

public static final int sizeOf
Constant value--size of a Fixed Datum Record; here :sizeOf = 8 bytes.

See Also:
Constant Field Values
Constructor Detail

FixedDatum

public FixedDatum()
Default constructor--fills with zeros for all values.


FixedDatum

public FixedDatum(int pFixedDatumID,
                  int pValue)
Constructs a new FixedDatum with the values specfied in parameters.

Parameters:
pFixedDatumID - the value of fixed Datum Identifier
pValue - the value of the Fixed Datum
Method Detail

clone

public java.lang.Object clone()
Description copied from class: PduElement
Makes deep copies of all the instance variables, so we don't have two objects pointing to the same data. The accessor methods make copies of the objects, rather than returning the objects themselves. The runtime provides the right object type with the call to super.clone(), and we cast it to our type. Subclasses should do the same thing, and all these ivars will be taken care of automatically.

Overrides:
clone in class PduElement
Returns:
a clone of this instance
See Also:
Object

serialize

public void serialize(java.io.DataOutputStream outputStream)
Description copied from class: PduElement
Serialize our data out to the stream. Subclasses of us should call super.Serialize() to make sure the superclasse's data is serialized out. The order in which instance variables are serialized is significant. They must be serialized in the same order they appear in the DIS spec. Prints out some information during execution if debugging flag is set.

Specified by:
serialize in interface SerializationInterface
Specified by:
serialize in class PduElement
Parameters:
outputStream - the stream to which this object is serialized
Throws:
java.lang.RuntimeException - when IO Error occurs.

deSerialize

public void deSerialize(java.io.DataInputStream inputStream)
Description copied from class: PduElement
Deserialize our data from the input stream. Subclasses of us should call super.deSerialize to make sure the superclass's data are properly affected. The order in which instance variables are serialized is significant. They must be deSerialized in the same order as they have been serialized as specified by the DIS spec.

Specified by:
deSerialize in interface SerializationInterface
Specified by:
deSerialize in class PduElement
Parameters:
inputStream - the stream from which this object is initialized
Throws:
java.lang.RuntimeException - when IO Error occurs.

length

public int length()
Description copied from class: PduElement
Returns the length of the object when serialized in a stream.

Specified by:
length in class PduElement
Returns:
the length of the object when serialized in a stream

printValues

public void printValues(int indentLevel,
                        java.io.PrintStream printStream)
Description copied from class: PduElement
Prints the generated serialized object for debugging.

Specified by:
printValues in class PduElement
Parameters:
indentLevel - number of spaces to indent for visibility

getFixedDatumID

public int getFixedDatumID()

setFixedDatumID

public void setFixedDatumID(int pFixedDatumID)

getValue

public int getValue()

setValue

public void setValue(int pValue)