arlut.csd.ganymede
Class BooleanDBField

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

public class BooleanDBField
extends DBField
implements boolean_field

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

The Ganymede client talks to BooleanDBFields through the boolean_field RMI interface.


Field Summary
 
Fields inherited from class arlut.csd.ganymede.DBField
fieldcode, owner, value
 
Constructor Summary
  BooleanDBField(arlut.csd.ganymede.DBObject owner, arlut.csd.ganymede.BooleanDBField field)
          Copy constructor.
  BooleanDBField(arlut.csd.ganymede.DBObject owner, boolean value, arlut.csd.ganymede.DBObjectBaseField definition)
          Scalar value constructor.
(package private) BooleanDBField(arlut.csd.ganymede.DBObject owner, java.io.DataInput in, arlut.csd.ganymede.DBObjectBaseField definition)
          Receive constructor.
(package private) BooleanDBField(arlut.csd.ganymede.DBObject owner, arlut.csd.ganymede.DBObjectBaseField definition)
          No-value constructor.
  BooleanDBField(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.
(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.
 java.lang.String falseLabel()
          Returns the false label if this field is defined to have the true/false values associated with labels.
 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()
          The normal boolean getValueString() encoding is adequate.
 java.lang.String getValueString()
          This method returns a text encoded value for this BooleanDBField without checking permissions.
 boolean isDefined()
          Returns true if this field has a value associated with it, or false if it is an unfilled 'placeholder'.
 boolean labeled()
          Returns true if this field is defined to have the true/false values associated with labels.
(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.
 arlut.csd.ganymede.ReturnVal setUndefined(boolean local)
          This method is used to mark a field as undefined when it is checked out for editing.
 java.lang.String trueLabel()
          Returns the true label if this field is defined to have the true/false values associated with labels.
 boolean value()
           
 boolean 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, isEditable, isEditable, isEditInPlace, isVector, isVisible, key, key, mark, mark, rescanThisField, rollback, setElement, setElement, setElement, setElementLocal, setOwner, 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, isEditable, isEditInPlace, isVector, isVisible, setElement, setValue, size
 

Constructor Detail

BooleanDBField

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

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


BooleanDBField

BooleanDBField(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.


BooleanDBField

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


BooleanDBField

public BooleanDBField(arlut.csd.ganymede.DBObject owner,
                      boolean value,
                      arlut.csd.ganymede.DBObjectBaseField definition)
Scalar value constructor.


BooleanDBField

public BooleanDBField(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

isDefined

public boolean isDefined()
Returns true if this field has a value associated with it, or false if it is an unfilled 'placeholder'.

Specified by:
isDefined in interface db_field
Overrides:
isDefined in class DBField
See Also:
db_field

setUndefined

public arlut.csd.ganymede.ReturnVal setUndefined(boolean local)

This method is used to mark a field as undefined when it is checked out for editing. Different subclasses of DBField may implement this in different ways, if simply setting the field's value member to null is not appropriate. Any namespace values claimed by the field will be released, and when the transaction is committed, this field will be released.

Overrides:
setUndefined in class DBField

value

public boolean value()

value

public boolean value(int index)

getValueString

public java.lang.String getValueString()

This method returns a text encoded value for this BooleanDBField without checking permissions.

This method avoids checking permissions because it is used on the server side only and because it is involved in the getLabel() logic for DBObject, which is invoked from GanymedeSession's getPerm() method.

If this method checked permissions and the getPerm() method failed for some reason and tried to report the failure using object.getLabel(), as it does at present, the server could get into an infinite loop.

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

getEncodingString

public java.lang.String getEncodingString()
The normal boolean 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

labeled

public boolean labeled()
Returns true if this field is defined to have the true/false values associated with labels.

Specified by:
labeled in interface boolean_field
See Also:
boolean_field

trueLabel

public java.lang.String trueLabel()
Returns the true label if this field is defined to have the true/false values associated with labels.

Specified by:
trueLabel in interface boolean_field
See Also:
boolean_field

falseLabel

public java.lang.String falseLabel()
Returns the false label if this field is defined to have the true/false values associated with labels.

Specified by:
falseLabel in interface boolean_field
See Also:
boolean_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