A - AppUser typeB - target typeL - Link typepublic abstract class AbstractRelationship<A extends AppUser,B extends DataObject,L extends AbstractRelationship.Link<A,B>> extends RelationshipLinkManager<A,B,L>
RelationshipProvider and RoleSelector for the domain object.
How roles are actually encoded into the link object is deferred to the sub-class.| Modifier and Type | Class and Description |
|---|---|
static class |
AbstractRelationship.Link<A extends AppUser,B extends DataObject> |
LinkManager.JoinLinkFilterIterator, LinkManager.JoinLinkMapper, LinkManager.LeftAcceptFilter, LinkManager.LinkInput, LinkManager.LinkResult, LinkManager.RightAcceptFilterIndexedLinkManager.LinkFilter, IndexedLinkManager.LinkProvider<T extends IndexedLinkManager.Link<L,R>,L extends Indexed,R extends Indexed>, IndexedLinkManager.LinkUpdater, IndexedLinkManager.SQLLinkFilterDataObjectFactory.AbstractDataObjectInput, DataObjectFactory.AbstractFinder<X>, DataObjectFactory.DataObjectAcceptFilter, DataObjectFactory.DataObjectInput, DataObjectFactory.DataObjectIntegerInput, DataObjectFactory.DestAcceptFilter<T extends DataObject>, DataObjectFactory.FilterAdapter, DataObjectFactory.FilterCounter, DataObjectFactory.FilterExists, DataObjectFactory.FilterIterator, DataObjectFactory.FilterSelector, DataObjectFactory.FilterSet, DataObjectFactory.Finder, DataObjectFactory.MakeRemoteFilterVisitor<R extends DataObject>, DataObjectFactory.MatchFilter, DataObjectFactory.ReferencedAdapter<I extends Indexed>, DataObjectFactory.ReferenceIterator<I extends Indexed>, DataObjectFactory.SortingDataObjectInput, DataObjectFactory.TimeAcceptFilter<T extends DataObject>, DataObjectFactory.TimeFilterUSE_JOINAUTO_CREATE_TABLES_FEATURE, COMPOSITES_SUFFIX, REJECT_MULTIPLE_RESULT_FEATURE, res| Modifier | Constructor and Description |
|---|---|
protected |
AbstractRelationship(AppContext c,
java.lang.String tag,
java.lang.String person_field,
DataObjectFactory<B> b_fac,
java.lang.String field)
Extension constructor to allow sub-classes to set factory and field
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
canCreate(SessionService c)
Can the producer provide a FormUpdate for the current user.
|
boolean |
hasRole(A user,
B target,
java.lang.String role) |
protected L |
selectLink(A leftEnd,
B rightEnd)
method to call when from selector code normally the same as getLink but
may need to be overridden to automatically create objects (beware of
unwanted side effects in this case).
|
void |
setRole(A user,
B target,
java.lang.String role,
boolean value) |
addRelationships, getFilterFromRole, getTargetFactory, getTargetFilter, getTargetRoleFilter, getUserFilter, getUserFilter, getUserRoleFilter, hasRelationFilter, personInRelationFilter, providesRelationshipfind, find, getDefaultTableSpecification, getFilter, getFilterResult, getInput, getLeftFactory, getLeftFilter, getLeftFilter, getLeftInput, getLeftJoinFilter, getLeftRemoteFilter, getLinkCount, getLinkIterator, getRightFactory, getRightFilter, getRightFilter, getRightInput, getRightJoinFilter, getRightRemoteFilter, getSelectors, getTarget, isLeft, isRightaddLeftSet, addRightSet, getDefaultTableSpecification, getFinalTableSpecification, getFormUpdate, getHistoryHandler, getLeftField, getLeftFilter, getLeftProducer, getLeftSet, getLink, getRightField, getRightFilter, getRightProducer, getRightSet, getTableSpecification, makeHistoryHandler, makeLink, modifyHistoryTable, setContext, setHistoryHandler, updateHistory, useAutoHistoryall, allowPreSelect, canUpdate, checkComposite, convertToDestinationFilter, customiseForm, equals, exists, find, find, find, find, find, getAllIterator, getComposite, getComposites, getComposites, getConfigTag, getContext, getCount, getDefaultRelationshipFilter, getDefaults, getDestFilter, getExcludeFilter, getFieldConstraints, getFieldHelp, getFilter, getFilter, getFilter, getFinalSelectFilter, getFinalTableSpecification, getFindFilter, getFormCreator, getID, getIndex, getInput, getInput, getLogger, getMaxIdentifierLength, getNullable, getOptional, getOrder, getProperty, getReferenced, getReferenceFieldType, getReferenceFieldType, getRemoteFilter, getRemoteSQLFilter, getResult, getResult, getSelectFilter, getSelector, getSelector, getSupress, getTableStructureContributers, getTag, getTranslations, getUniqueIdName, hasComposite, hashCode, isMine, isMine, isMyReference, isValid, makeBDO, makeBDO, makeObject, makeRecord, makeReference, makeReference, matches, narrowSelector, narrowSelector, observeComposite, OrderBy, postCreateTableSetup, postSetContext, release, restrictDefaultInput, setComposites, setContext, setContext, setContextWithMake, setProperty, toString, updateTableclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetRelationshipsgetContextprotected AbstractRelationship(AppContext c, java.lang.String tag, java.lang.String person_field, DataObjectFactory<B> b_fac, java.lang.String field)
protected final L selectLink(A leftEnd, B rightEnd) throws java.lang.Exception
IndexedLinkManager#canCreate(uk.ac.ed.epcc.webapp.SessionService) in that case.selectLink in class IndexedLinkManager<L extends AbstractRelationship.Link<A,B>,A extends AppUser,B extends DataObject>DataExceptionjava.lang.Exceptionpublic final boolean canCreate(SessionService c)
FormCreatorProducerFormPolicycanCreate in interface FormCreatorProducercanCreate in class DataObjectFactory<L extends AbstractRelationship.Link<A,B>>