arlut.csd.ganymede
Class ownerCustom

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

public class ownerCustom
extends DBEditObject
implements SchemaConstants


Field Summary
 
Fields inherited from class arlut.csd.ganymede.DBEditObject
ADDELEMENT, ADDELEMENTS, debug, DELELEMENT, DELELEMENTS, deleting, editset, FIRSTOP, LASTOP, maxDate, minDate, original, SETELEMENT, SETPASSAPACHEMD5, 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
ownerCustom(arlut.csd.ganymede.DBObjectBase objectBase)
          Customization Constructor
ownerCustom(arlut.csd.ganymede.DBObjectBase objectBase, arlut.csd.ganymede.Invid invid, arlut.csd.ganymede.DBEditSet editset)
          Create new object constructor
ownerCustom(arlut.csd.ganymede.DBObject original, arlut.csd.ganymede.DBEditSet editset)
          Check-out constructor, used by DBObject.createShadow() to pull out an object for editing.
 
Method Summary
 boolean anonymousUnlinkOK(arlut.csd.ganymede.DBObject object, short fieldID)
          This method is used to control whether or not it is acceptable to rescind a link to the given field in this DBObject type when the user only has editing access for the source InvidDBField and not the target.
static java.util.Vector getAddresses(arlut.csd.ganymede.Invid ownerInvid, arlut.csd.ganymede.DBSession session)
          This method takes an Invid for an Owner Group DBObject and returns a Vector of Strings containing the list of email addresses for that owner group.
 java.util.Vector getEmailTargets(arlut.csd.ganymede.DBObject object)
          This method provides a hook to allow custom DBEditObject subclasses to return a Vector of Strings comprising a list of addresses to be notified above and beyond the normal owner group notification when the given object is changed in a transaction.
 boolean hasEmailTarget(arlut.csd.ganymede.DBObject object)
          This method provides a hook to allow custom DBEditObject subclasses to indicate that the given object is interested in receiving notification when changes involving it occur, and can provide one or more addresses for such notification to go to.
 boolean mustChoose(arlut.csd.ganymede.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()
 java.lang.Object obtainChoicesKey(arlut.csd.ganymede.DBField field)
          This method returns a key that can be used by the client to cache the value returned by choices().
 arlut.csd.ganymede.ReturnVal verifyNewValue(arlut.csd.ganymede.DBField field, java.lang.Object value)
          This method provides a hook that can be used to check any values to be set in any field in this object.
 
Methods inherited from class arlut.csd.ganymede.DBEditObject
anonymousLinkOK, anonymousLinkOK, anonymousLinkOK, anonymousUnlinkOK, anonymousUnlinkOK, canBeInactivated, canClone, canCloneField, canCreate, canInactivate, canRead, canRemove, canSeeField, canWrite, checkNewField, checkpoint, choiceListHasExceptions, cloneFromObject, commitPhase1, commitPhase2, consistencyCheck, createNewEmbeddedObject, diff, excludeSelected, fieldRequired, finalizeAddElement, finalizeAddElements, finalizeDeleteElement, finalizeDeleteElements, finalizeInactivate, finalizeReactivate, finalizeRemove, finalizeSetElement, finalizeSetValue, getEditSet, getLabel, getLabelHook, getOriginal, getSession, getStatus, getVirtualValue, grantOwnership, inactivate, initializeNewObject, instantiateNewField, internalSession, isCommitting, isDateLimited, isDeleting, isFloatLimited, isIntLimited, isIPv6OK, isStored, maxDate, maxFloat, maxInt, minDate, minFloat, minInt, obtainChoiceList, permExpand, permExpand, permOverride, permOverride, reactivate, release, remove, rollback, setCommitting, setDebug, setFieldValue, setFieldValueLocal, setStatus, useLabelHook, virtualizeField, wizardHook
 
Methods inherited from class arlut.csd.ganymede.DBObject
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, 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, wait, wait, wait
 

Constructor Detail

ownerCustom

public ownerCustom(arlut.csd.ganymede.DBObjectBase objectBase)
            throws java.rmi.RemoteException
Customization Constructor


ownerCustom

public ownerCustom(arlut.csd.ganymede.DBObjectBase objectBase,
                   arlut.csd.ganymede.Invid invid,
                   arlut.csd.ganymede.DBEditSet editset)
            throws java.rmi.RemoteException
Create new object constructor


ownerCustom

public ownerCustom(arlut.csd.ganymede.DBObject original,
                   arlut.csd.ganymede.DBEditSet editset)
            throws java.rmi.RemoteException
Check-out constructor, used by DBObject.createShadow() to pull out an object for editing.

Method Detail

getAddresses

public static java.util.Vector getAddresses(arlut.csd.ganymede.Invid ownerInvid,
                                            arlut.csd.ganymede.DBSession session)

This method takes an Invid for an Owner Group DBObject and returns a Vector of Strings containing the list of email addresses for that owner group.


hasEmailTarget

public boolean hasEmailTarget(arlut.csd.ganymede.DBObject object)

This method provides a hook to allow custom DBEditObject subclasses to indicate that the given object is interested in receiving notification when changes involving it occur, and can provide one or more addresses for such notification to go to.

*PSEUDOSTATIC*

Overrides:
hasEmailTarget in class DBEditObject

getEmailTargets

public java.util.Vector getEmailTargets(arlut.csd.ganymede.DBObject object)

This method provides a hook to allow custom DBEditObject subclasses to return a Vector of Strings comprising a list of addresses to be notified above and beyond the normal owner group notification when the given object is changed in a transaction. Used for letting end-users be notified of changes to their account, etc.

*PSEUDOSTATIC*

Overrides:
getEmailTargets in class DBEditObject

mustChoose

public boolean mustChoose(arlut.csd.ganymede.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

obtainChoicesKey

public java.lang.Object obtainChoicesKey(arlut.csd.ganymede.DBField field)
This method returns a key that can be used by the client to cache the value returned by choices(). If the client already has the key cached on the client side, it can provide the choice list from its cache rather than calling choices() on this object again.

If there is no caching key, this method will return null.

Overrides:
obtainChoicesKey in class DBEditObject

verifyNewValue

public arlut.csd.ganymede.ReturnVal verifyNewValue(arlut.csd.ganymede.DBField field,
                                                   java.lang.Object value)
This method provides a hook that can be used to check any values to be set in any field in this object. Subclasses of DBEditObject should override this method, implementing basically a large switch statement to check for any given field whether the submitted value is acceptable given the current state of the object.

Question: what synchronization issues are going to be needed between DBEditObject and DBField to insure that we can have a reliable verifyNewValue method here?

Overrides:
verifyNewValue in class DBEditObject

anonymousUnlinkOK

public boolean anonymousUnlinkOK(arlut.csd.ganymede.DBObject object,
                                 short fieldID)
This method is used to control whether or not it is acceptable to rescind a link to the given field in this DBObject type when the user only has editing access for the source InvidDBField and not the target.

Overrides:
anonymousUnlinkOK in class DBEditObject
Parameters:
object - The object that the link is to be removed from
fieldID - The field that the linkk is to be removed from