arlut.csd.ganymede
Class objectEventCustom

java.lang.Object
  |
  +--arlut.csd.ganymede.DBObject
        |
        +--arlut.csd.ganymede.DBEditObject
              |
              +--arlut.csd.ganymede.objectEventCustom
All Implemented Interfaces:
db_object, FieldType, ObjectStatus, java.rmi.Remote, SchemaConstants

public class objectEventCustom
extends DBEditObject
implements SchemaConstants


Field Summary
(package private) static QueryResult eventNames
          We're going to present the user with a list of recommended event names to choose from.
(package private)  QueryResult objectTypeList
          Since object types can only be changed by the schema editor, we'll cache the object type list for the duration of this object's being edited.
 
Fields inherited from class arlut.csd.ganymede.DBEditObject
ADDELEMENT, ADDELEMENTS, committing, debug, DELELEMENT, DELELEMENTS, deleting, editset, FIRSTOP, LASTOP, maxDate, minDate, original, SETELEMENT, SETPASSCRYPT, SETPASSMD5, SETPASSPLAIN, SETPASSWINHASHES, SETVAL, status, stored
 
Fields inherited from class arlut.csd.ganymede.DBObject
debugEmit, fieldAry, gSession, myInvid, next, objectBase, permCacheAry, shadowObject
 
Fields inherited from interface arlut.csd.ganymede.SchemaConstants
BackLinksField, ContainerField, CreationDateField, CreatorField, EventBase, EventDescription, EventExternalMail, EventMailBoolean, EventMailOwners, EventMailToSelf, EventName, EventToken, ExpirationField, FinalBase, FinalSystemField, ModificationDateField, ModifierField, NotesField, ObjectEventBase, ObjectEventDescription, ObjectEventExternalMail, ObjectEventMailOwners, ObjectEventMailToSelf, ObjectEventName, ObjectEventObjectName, ObjectEventObjectType, ObjectEventToken, OwnerBase, OwnerCcAdmins, OwnerExternalMail, OwnerListField, OwnerMembersField, OwnerNameField, OwnerObjectsOwned, OwnerSupergash, PersonaAdminConsole, PersonaAdminPower, PersonaAssocUser, PersonaBase, PersonaGroupsField, PersonaLabelField, PersonaMailAddr, PersonaMonitorObj, PersonaNameField, PersonaPasswordField, PersonaPrivs, PersonaSupergashObj, RemovalField, RoleBase, RoleDefaultMatrix, RoleDefaultObj, RoleDelegatable, RoleMatrix, RoleName, RolePersonae, TaskBase, TaskClass, TaskName, TaskOptionStrings, TaskPeriodAnchor, TaskPeriodCount, TaskPeriodUnit, TaskRunOnCommit, TaskRunPeriodically, UserAdminPersonae, UserBase, UserPassword, UserUserName
 
Fields inherited from interface arlut.csd.ganymede.ObjectStatus
CREATING, DELETING, DROPPING, EDITING
 
Fields inherited from interface arlut.csd.ganymede.FieldType
BOOLEAN, DATE, FIRSTFIELD, FLOAT, INVID, IP, LASTFIELD, NUMERIC, PASSWORD, PERMISSIONMATRIX, STRING
 
Constructor Summary
objectEventCustom(DBObjectBase objectBase)
          Customization Constructor
objectEventCustom(DBObjectBase objectBase, Invid invid, DBEditSet editset)
          Create new object constructor
objectEventCustom(DBObject original, DBEditSet editset)
          Check-out constructor, used by DBObject.createShadow() to pull out an object for editing.
 
Method Summary
 boolean canSeeField(DBSession session, DBField field)
          Customization method to verify whether the user should be able to see a specific field in a given object.
 boolean fieldRequired(DBObject object, short fieldid)
          Customization method to control whether a specified field is required to be defined at commit time for a given object.

To be overridden in DBEditObject subclasses.
 ReturnVal finalizeSetValue(DBField field, java.lang.Object value)
          This method allows the DBEditObject to have executive approval of any scalar set operation, and to take any special actions in reaction to the set..
 java.lang.String getLabelHook(DBObject object)
          Hook to allow intelligent generation of labels for DBObjects of this type.
 boolean mustChoose(DBField field)
          This method provides a hook that a DBEditObject subclass can use to indicate whether a given field can only choose from a choice provided by obtainChoiceList()
 QueryResult obtainChoiceList(DBField field)
          This method provides a hook that can be used to generate choice lists for invid and string fields that provide such.
 
Methods inherited from class arlut.csd.ganymede.DBEditObject
anonymousLinkOK, anonymousLinkOK, anonymousLinkOK, anonymousUnlinkOK, anonymousUnlinkOK, anonymousUnlinkOK, attemptBackLinkClear, canBeInactivated, canClone, canCloneField, canCreate, canInactivate, canRead, canRemove, canWrite, checkNewField, checkpoint, choiceListHasExceptions, clearBackLink, cloneFromObject, commitPhase1, commitPhase2, consistencyCheck, createNewEmbeddedObject, diff, excludeSelected, finalizeAddElement, finalizeAddElements, finalizeDeleteElement, finalizeDeleteElements, finalizeInactivate, finalizeReactivate, finalizeRemove, finalizeSetElement, getEditSet, getEmailTargets, getLabel, getOriginal, getSession, getStatus, getVirtualValue, grantOwnership, hasEmailTarget, inactivate, initializeNewObject, instantiateNewField, internalSession, isCommitting, isDateLimited, isDeleting, isFloatLimited, isIntLimited, isIPv6OK, isStored, maxDate, maxFloat, maxInt, minDate, minFloat, minInt, obtainChoicesKey, permExpand, permExpand, permOverride, permOverride, reactivate, release, remove, rollback, setDebug, setFieldValue, setFieldValueLocal, setStatus, verifyNewValue, virtualizeField, wizardHook
 
Methods inherited from class arlut.csd.ganymede.DBObject
appendObjectInfo, canInactivate, checkRequiredFields, clearField, clearFieldPerm, clearShadow, createShadow, emit, emitXML, equals, exportFields, findField, getASymmetricTargets, getBackLinks, getBase, getContainingLabel, getEmailTargets, getExpirationDate, getField, getField, getFieldDef, getFieldId, getFieldInfoVector, getFieldName, getFieldPerm, getFieldValue, getFieldValueLocal, getFieldValues, getFieldValuesLocal, getFieldVect, getFieldVector, getGSession, getID, getInvid, getLabelField, getLabelFieldID, getPrintString, getRemovalDate, getSummaryDescription, getSummaryDescriptionLocal, getTypeDesc, getTypeID, getTypeName, hasEmailTarget, hashCode, isEmbedded, isInactivated, isSet, isValid, listFields, lookupLabel, print, print, receive, replaceField, retrieveField, saveField, setBackPointers, toString, unsetBackPointers, updateBaseRefs, willBeRemoved, willExpire
 
Methods inherited from class java.lang.Object
, clone, finalize, getClass, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

eventNames

static QueryResult eventNames
We're going to present the user with a list of recommended event names to choose from.

objectTypeList

QueryResult objectTypeList
Since object types can only be changed by the schema editor, we'll cache the object type list for the duration of this object's being edited. We could even make this a static, but then we'd have to have the DBSchemaEdit code know to clear it when the schema was edited, which would be a hassle.
Constructor Detail

objectEventCustom

public objectEventCustom(DBObjectBase objectBase)
                  throws java.rmi.RemoteException
Customization Constructor

objectEventCustom

public objectEventCustom(DBObjectBase objectBase,
                         Invid invid,
                         DBEditSet editset)
                  throws java.rmi.RemoteException
Create new object constructor

objectEventCustom

public objectEventCustom(DBObject original,
                         DBEditSet editset)
                  throws java.rmi.RemoteException
Check-out constructor, used by DBObject.createShadow() to pull out an object for editing.
Method Detail

fieldRequired

public boolean fieldRequired(DBObject object,
                             short fieldid)
Customization method to control whether a specified field is required to be defined at commit time for a given object.

To be overridden in DBEditObject subclasses.
Overrides:
fieldRequired in class DBEditObject

mustChoose

public boolean mustChoose(DBField field)
This method provides a hook that a DBEditObject subclass can use to indicate whether a given field can only choose from a choice provided by obtainChoiceList()
Overrides:
mustChoose in class DBEditObject

getLabelHook

public java.lang.String getLabelHook(DBObject object)
Hook to allow intelligent generation of labels for DBObjects of this type. Subclasses of DBEditObject should override this method to provide for custom generation of the object's label type
Overrides:
getLabelHook in class DBEditObject

obtainChoiceList

public QueryResult obtainChoiceList(DBField field)
This method provides a hook that can be used to generate choice lists for invid and string fields that provide such. String and Invid DBFields will call their owner's obtainChoiceList() method to get a list of valid choices. This method will provide a reasonable default for targetted invid fields.
Overrides:
obtainChoiceList in class DBEditObject

finalizeSetValue

public ReturnVal finalizeSetValue(DBField field,
                                  java.lang.Object value)
This method allows the DBEditObject to have executive approval of any scalar set operation, and to take any special actions in reaction to the set.. if this method returns true, the DBField that called us will proceed to make the change to it's value. If this method returns false, the DBField that called us will not make the change, and the field will be left unchanged.

The DBField that called us will take care of all possible checks on the operation (including a call to our own verifyNewValue() method. Under normal circumstances, we won't need to do anything here.

If we do return false, we should set editset.setLastError to provide feedback to the client about what we disapproved of.
Overrides:
finalizeSetValue in class DBEditObject

canSeeField

public boolean canSeeField(DBSession session,
                           DBField field)
Customization method to verify whether the user should be able to see a specific field in a given object. Instances of DBField will wind up calling up to here to let us override the normal visibility process.

Note that it is permissible for session to be null, in which case this method will always return the default visiblity for the field in question.

If field is not from an object of the same base as this DBEditObject, an exception will be thrown.

To be overridden in DBEditObject subclasses.
Overrides:
canSeeField in class DBEditObject