arlut.csd.ganymede
Class NumericDBField

java.lang.Object
  |
  +--arlut.csd.ganymede.DBField
        |
        +--arlut.csd.ganymede.NumericDBField
All Implemented Interfaces:
db_field, num_field, java.rmi.Remote

public class NumericDBField
extends DBField
implements num_field

NumericDBField is a subclass of DBField for the storage and handling of numeric fields in the DBStore on the Ganymede server.

The Ganymede client talks to NumericDBFields through the num_field RMI interface.


Field Summary
 
Fields inherited from class arlut.csd.ganymede.DBField
fieldcode, owner, value
 
Constructor Summary
(package private) NumericDBField(arlut.csd.ganymede.DBObject owner, java.io.DataInput in, arlut.csd.ganymede.DBObjectBaseField definition)
          Receive constructor.
(package private) NumericDBField(arlut.csd.ganymede.DBObject owner, arlut.csd.ganymede.DBObjectBaseField definition)
          No-value constructor.
  NumericDBField(arlut.csd.ganymede.DBObject owner, int value, arlut.csd.ganymede.DBObjectBaseField definition)
          Scalar value constructor.
  NumericDBField(arlut.csd.ganymede.DBObject owner, arlut.csd.ganymede.NumericDBField field)
          Copy constructor.
  NumericDBField(arlut.csd.ganymede.DBObject owner, java.util.Vector values, arlut.csd.ganymede.DBObjectBaseField definition)
          Vector value constructor.
 
Method Summary
 java.lang.Object clone()
           
(package private)  void emit(java.io.DataOutput out)
          This method is responsible for writing out the contents of this field to an binary output stream.
 void emitIntXML(arlut.csd.ganymede.XMLDumpContext xmlOut, int value)
           
(package private)  void emitXML(arlut.csd.ganymede.XMLDumpContext xmlOut)
          This method is used when the database is being dumped, to write out this field to disk.
 arlut.csd.ganymede.DBField getCopy(arlut.csd.ganymede.DBObject newOwner)
          This method is used to return a copy of this field, with the field's owner set to newOwner.
 java.lang.String getDiffString(arlut.csd.ganymede.DBField orig)
          Returns a String representing the change in value between this field and orig.
 java.lang.String getEncodingString()
          For numbers, our default getValueString() encoding is adequate.
 int getMaxValue()
          Returns the maximum acceptable value for this field if this field has max/min limitations.
 int getMinValue()
          Returns the minimum acceptable value for this field if this field has max/min limitations.
 java.lang.String getValueString()
          Returns a String representing the value of this field.
 boolean limited()
          Returns true if this field has max/min limitations.
(package private)  void receive(java.io.DataInput in, arlut.csd.ganymede.DBObjectBaseField definition)
          This method is responsible for reading in the contents of this field from an binary input stream.
 int value()
           
 int value(int index)
           
 arlut.csd.ganymede.ReturnVal verifyNewValue(java.lang.Object o)
          Overridable method to verify that an object submitted to this field has an appropriate value.
 boolean verifyTypeMatch(java.lang.Object o)
          Overridable method to determine whether an Object submitted to this field is of an appropriate type.
 
Methods inherited from class arlut.csd.ganymede.DBField
addElement, addElement, addElement, addElementLocal, addElements, addElements, addElements, addElements, addElementsLocal, checkpoint, cleanup, containsElement, containsElement, containsElementLocal, copyFieldTo, deleteAllElements, deleteElement, deleteElement, deleteElement, deleteElement, deleteElement, deleteElement, deleteElementLocal, deleteElementLocal, deleteElements, deleteElements, deleteElements, deleteElementsLocal, equals, getComment, getElement, getFieldDef, getFieldDef, getFieldDef, getFieldInfo, getFieldTemplate, getID, getMaxArraySize, getName, getNameSpace, getObjTypeID, getOwner, getType, getTypeDesc, getValue, getValue, getValueLocal, getValues, getValuesLocal, getVectorDiff, getVectVal, getXMLName, indexOfValue, isBuiltIn, isDefined, isEditable, isEditable, isEditInPlace, isVector, isVisible, key, key, mark, mark, rescanThisField, rollback, setElement, setElement, setElement, setElementLocal, setOwner, setUndefined, setValue, setValue, setValue, setValueLocal, size, toString, unmark, unmark, verifyReadPermission, verifyWritePermission
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface arlut.csd.ganymede.db_field
addElement, addElements, containsElement, deleteAllElements, deleteElement, deleteElement, deleteElements, getComment, getElement, getFieldInfo, getFieldTemplate, getID, getName, getType, getTypeDesc, getValue, getValues, isBuiltIn, isDefined, isEditable, isEditInPlace, isVector, isVisible, setElement, setValue, size
 

Constructor Detail

NumericDBField

NumericDBField(arlut.csd.ganymede.DBObject owner,
               java.io.DataInput in,
               arlut.csd.ganymede.DBObjectBaseField definition)
         throws java.io.IOException

Receive constructor. Used to create a NumericDBField from a DBStore/DBJournal DataInput stream.


NumericDBField

NumericDBField(arlut.csd.ganymede.DBObject owner,
               arlut.csd.ganymede.DBObjectBaseField definition)

No-value constructor. Allows the construction of a 'non-initialized' field, for use where the DBObjectBase definition indicates that a given field may be present, but for which no value has been stored in the DBStore.

Used to provide the client a template for 'creating' this field if so desired.


NumericDBField

public NumericDBField(arlut.csd.ganymede.DBObject owner,
                      arlut.csd.ganymede.NumericDBField field)
Copy constructor.


NumericDBField

public NumericDBField(arlut.csd.ganymede.DBObject owner,
                      int value,
                      arlut.csd.ganymede.DBObjectBaseField definition)
Scalar value constructor.


NumericDBField

public NumericDBField(arlut.csd.ganymede.DBObject owner,
                      java.util.Vector values,
                      arlut.csd.ganymede.DBObjectBaseField definition)
Vector value constructor.

Method Detail

getCopy

public arlut.csd.ganymede.DBField getCopy(arlut.csd.ganymede.DBObject newOwner)

This method is used to return a copy of this field, with the field's owner set to newOwner.

Specified by:
getCopy in class DBField

clone

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

emit

void emit(java.io.DataOutput out)
    throws java.io.IOException
Description copied from class: DBField

This method is responsible for writing out the contents of this field to an binary output stream. It is used in writing fields to the ganymede.db file and to the journal file.

This method only writes out the value contents of this field. The DBObject emit() method is responsible for writing out the field identifier information ahead of the field's contents.

Specified by:
emit in class DBField
java.io.IOException

receive

void receive(java.io.DataInput in,
             arlut.csd.ganymede.DBObjectBaseField definition)
       throws java.io.IOException
Description copied from class: DBField

This method is responsible for reading in the contents of this field from an binary input stream. It is used in reading fields from the ganymede.db file and from the journal file.

The code that calls receive() on this field is responsible for having read enough of the binary input stream's context to place the read cursor at the point in the file immediately after the field's id and type information has been read.

Specified by:
receive in class DBField
java.io.IOException

emitXML

void emitXML(arlut.csd.ganymede.XMLDumpContext xmlOut)
       throws java.io.IOException

This method is used when the database is being dumped, to write out this field to disk. It is mated with receiveXML().

Specified by:
emitXML in class DBField
java.io.IOException

emitIntXML

public void emitIntXML(arlut.csd.ganymede.XMLDumpContext xmlOut,
                       int value)
                throws java.io.IOException
java.io.IOException

value

public int value()

value

public int value(int index)

getValueString

public java.lang.String getValueString()
Description copied from interface: db_field
Returns a String representing the value of this field.

Specified by:
getValueString in interface db_field
Specified by:
getValueString in class DBField

getEncodingString

public java.lang.String getEncodingString()
For numbers, our default getValueString() encoding is adequate.

Specified by:
getEncodingString in interface db_field
Specified by:
getEncodingString in class DBField
See Also:
db_field

getDiffString

public java.lang.String getDiffString(arlut.csd.ganymede.DBField orig)

Returns a String representing the change in value between this field and orig. This String is intended for logging and email, not for any sort of programmatic activity. The format of the generated string is not defined, but is intended to be suitable for inclusion in a log entry and in an email message.

If there is no change in the field, null will be returned.

Specified by:
getDiffString in class DBField

limited

public boolean limited()
Returns true if this field has max/min limitations.

Specified by:
limited in interface num_field
See Also:
num_field

getMinValue

public int getMinValue()
Returns the minimum acceptable value for this field if this field has max/min limitations.

Specified by:
getMinValue in interface num_field
See Also:
num_field

getMaxValue

public int getMaxValue()
Returns the maximum acceptable value for this field if this field has max/min limitations.

Specified by:
getMaxValue in interface num_field
See Also:
num_field

verifyTypeMatch

public boolean verifyTypeMatch(java.lang.Object o)
Description copied from class: DBField
Overridable method to determine whether an Object submitted to this field is of an appropriate type.

Specified by:
verifyTypeMatch in class DBField

verifyNewValue

public arlut.csd.ganymede.ReturnVal verifyNewValue(java.lang.Object o)
Description copied from class: DBField
Overridable method to verify that an object submitted to this field has an appropriate value.

Specified by:
verifyNewValue in class DBField