T - L - R - public abstract class AccountingLinkManager<T extends AccountingLinkManager.PropertyTargetLink<L,R>,L extends uk.ac.ed.epcc.webapp.model.data.DataObject,R extends uk.ac.ed.epcc.webapp.model.data.DataObject> extends uk.ac.ed.epcc.webapp.model.data.table.TableStructureLinkManager<T,L,R> implements ExpressionTargetFactory<T>
| Modifier and Type | Class and Description |
|---|---|
class |
AccountingLinkManager.AccountingLinkManagerTableRegistry |
static class |
AccountingLinkManager.PropertyTargetLink<L extends uk.ac.ed.epcc.webapp.model.data.DataObject,R extends uk.ac.ed.epcc.webapp.model.data.DataObject> |
uk.ac.ed.epcc.webapp.model.data.LinkManager.JoinLinkFilterIterator, uk.ac.ed.epcc.webapp.model.data.LinkManager.LeftResult, uk.ac.ed.epcc.webapp.model.data.LinkManager.Link<L extends uk.ac.ed.epcc.webapp.model.data.DataObject,R extends uk.ac.ed.epcc.webapp.model.data.DataObject>, uk.ac.ed.epcc.webapp.model.data.LinkManager.LinkFilterIterator, uk.ac.ed.epcc.webapp.model.data.LinkManager.LinkInput, uk.ac.ed.epcc.webapp.model.data.LinkManager.LinkMapper, uk.ac.ed.epcc.webapp.model.data.LinkManager.LinkResult, uk.ac.ed.epcc.webapp.model.data.LinkManager.RightResultuk.ac.ed.epcc.webapp.model.data.IndexedLinkManager.LeftIterator, uk.ac.ed.epcc.webapp.model.data.IndexedLinkManager.LinkFilter, uk.ac.ed.epcc.webapp.model.data.IndexedLinkManager.LinkUpdater, uk.ac.ed.epcc.webapp.model.data.IndexedLinkManager.RightIterator, uk.ac.ed.epcc.webapp.model.data.IndexedLinkManager.SQLLinkFilteruk.ac.ed.epcc.webapp.model.data.DataObjectFactory.CounterMapper, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.DataObjectAcceptFilter, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.DataObjectInput, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.DataObjectIntegerInput, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.DestFilter<T extends uk.ac.ed.epcc.webapp.model.data.DataObject>, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.ExistsMapper, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.FilterAdapter, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.FilterCounter, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.FilterExists, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.FilterIterator, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.FilterSet, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.Finder, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.MatchFilter, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.ReferenceAcceptFilter<R extends uk.ac.ed.epcc.webapp.Indexed,T extends uk.ac.ed.epcc.webapp.model.data.DataObject>, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.ReferencedAdapter<I extends uk.ac.ed.epcc.webapp.Indexed>, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.ReferenceIterator<I extends uk.ac.ed.epcc.webapp.Indexed>, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.RemoteFilter<T extends uk.ac.ed.epcc.webapp.model.data.DataObject>, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.SortingDataObjectInput, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.TimeAcceptFilter<T extends uk.ac.ed.epcc.webapp.model.data.DataObject>, uk.ac.ed.epcc.webapp.model.data.DataObjectFactory.TimeFilter| Modifier | Constructor and Description |
|---|---|
protected |
AccountingLinkManager(uk.ac.ed.epcc.webapp.AppContext c,
java.lang.String table,
uk.ac.ed.epcc.webapp.model.data.DataObjectFactory<L> left_fac,
java.lang.String left_field,
uk.ac.ed.epcc.webapp.model.data.DataObjectFactory<R> right_fac,
java.lang.String right_field) |
| Modifier and Type | Method and Description |
|---|---|
<I> boolean |
compatible(PropExpression<I> expr)
Check if the expression is compatible with this class.
|
boolean |
compatible(RecordSelector sel)
Is the RecordSelector compatible with this class.
|
protected void |
customAccessors(AccessorMap<T> mapi2,
MultiFinder finder,
PropExpressionMap derived)
Extension point to allow custom accessors and registries to be added.
|
T |
find(RecordSelector sel) |
protected AccessorMap<T> |
getAccessorMap() |
PropExpressionMap |
getDerivedProperties() |
<X> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> |
getFilter(PropExpression<X> expr,
uk.ac.ed.epcc.webapp.jdbc.filter.MatchCondition match,
X value)
get a filter based on comparing a PropExpression to a value.
|
protected uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> |
getFilter(RecordSelector selector)
Get a filter from a
RecordSelector |
PropertyFinder |
getFinder()
Produce a PropertyFinder that can find any of the PropertyTags
that can be specified for the objects generated by this type.
|
java.util.Iterator<T> |
getIterator(RecordSelector sel)
Get an Iterator over selected records.
|
java.util.Iterator<T> |
getIterator(RecordSelector sel,
int skip,
int count)
Get an Iterator over selected records.
|
<X> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> |
getNullFilter(PropExpression<X> expr,
boolean is_null)
get a filter that checks null status of an expression.
|
<I> uk.ac.ed.epcc.webapp.jdbc.filter.OrderFilter<T> |
getOrderFilter(boolean descending,
PropExpression<I> expr) |
uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> |
getPeriodFilter(uk.ac.ed.epcc.webapp.time.Period period,
PropExpression<java.util.Date> start,
PropExpression<java.util.Date> end,
OverlapType type,
long cutoff)
Generate an overlap filter
|
java.util.Set<PropertyTag> |
getProperties()
Get the set of Defined properties.
|
long |
getRecordCount(RecordSelector selector)
get the number of records matching the selector
|
<Q> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> |
getRelationFilter(PropExpression<Q> left,
uk.ac.ed.epcc.webapp.jdbc.filter.MatchCondition match,
PropExpression<Q> right)
get a filter that compares two expressions.
|
<I> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> |
getSelectClauseFilter(SelectClause<I> c) |
protected java.util.Map<java.lang.String,java.lang.Object> |
getSelectors() |
<X> uk.ac.ed.epcc.webapp.jdbc.expr.SQLExpression<X> |
getSQLExpression(PropExpression<X> exp) |
java.lang.Class<? super T> |
getTarget() |
<PT> java.util.Set<PT> |
getValues(PropertyTag<PT> tag,
RecordSelector selector)
Gets the distinct property values for the set of records identified by the RecordSelector
|
<X> boolean |
hasProperty(PropertyTag<X> p)
Is this a defined property
|
protected void |
initAccessorMap(uk.ac.ed.epcc.webapp.AppContext c,
java.lang.String table) |
protected TableRegistry |
makeTableRegistry() |
void |
release() |
void |
resetStructure() |
getTableTransitionID, getTableTransitionRegistry, resetTransitionRegistrygetDefaultTableSpecification, getInput, getLeftFactory, getLeftFilter, getLeftInput, getLeftIterator, getLeftJoinFilter, getLeftResult, getLinkCount, getLinkIterator, getLinkIterator, getResult, getRightFactory, getRightFilter, getRightInput, getRightIterator, getRightJoinFilter, getRightResult, isLeft, isRightgetFormUpdate, getHistoryHandler, getLeftField, getLeftFilter, getLeftProducer, getLeftSet, getLink, getRightField, getRightFilter, getRightProducer, getRightSet, makeHistoryHandler, makeLink, selectLink, SetContext, setHistoryHandler, updateHistory, useAutoHistoryall, allowPreSelect, canCreate, canUpdate, customiseForm, equals, exists, find, find, find, find, find, getAllIterator, getComposite, getComposites, getConfigTag, getContext, getCount, getDefaults, getDefaultTableSpecification, getFormCreator, getIndex, getInput, getIterator, getLogger, getMaxIdentifierLength, getNullable, getOptional, getOrder, getProperty, getReferenced, getReferenceFieldType, getResult, getSelectFilter, getSupress, getTag, getTranslations, getUniqueIdName, hashCode, isMine, isMine, isMyReference, isValid, makeBDO, makeBDO, makeObject, makeRecord, makeReference, makeReference, makeSet, OrderBy, postCreateTableSetup, restrictDefaultInput, setContext, setContext, setContextWithMake, setProperty, toStringprotected TableRegistry makeTableRegistry()
protected final void initAccessorMap(uk.ac.ed.epcc.webapp.AppContext c,
java.lang.String table)
protected void customAccessors(AccessorMap<T> mapi2, MultiFinder finder, PropExpressionMap derived)
mapi2 - finder - derived - public final PropertyFinder getFinder()
PropertyTargetFactorygetFinder in interface PropertyTargetFactorypublic void resetStructure()
resetStructure in interface uk.ac.ed.epcc.webapp.jdbc.table.TableStructureTransitionTargetresetStructure in class uk.ac.ed.epcc.webapp.model.data.table.TableStructureLinkManager<T extends AccountingLinkManager.PropertyTargetLink<L,R>,L extends uk.ac.ed.epcc.webapp.model.data.DataObject,R extends uk.ac.ed.epcc.webapp.model.data.DataObject>protected final AccessorMap<T> getAccessorMap()
public final PropExpressionMap getDerivedProperties()
protected java.util.Map<java.lang.String,java.lang.Object> getSelectors()
public <I> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> getSelectClauseFilter(SelectClause<I> c)
public final java.util.Set<PropertyTag> getProperties()
public java.lang.Class<? super T> getTarget()
getTarget in interface uk.ac.ed.epcc.webapp.model.data.reference.IndexedProducer<T extends AccountingLinkManager.PropertyTargetLink<L,R>>getTarget in interface uk.ac.ed.epcc.webapp.Targetted<T extends AccountingLinkManager.PropertyTargetLink<L,R>>getTarget in class uk.ac.ed.epcc.webapp.model.data.LinkManager<T extends AccountingLinkManager.PropertyTargetLink<L,R>,L extends uk.ac.ed.epcc.webapp.model.data.DataObject,R extends uk.ac.ed.epcc.webapp.model.data.DataObject>public final <X> boolean hasProperty(PropertyTag<X> p)
hasProperty in interface PropertyTargetFactoryp - public final <X> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> getFilter(PropExpression<X> expr, uk.ac.ed.epcc.webapp.jdbc.filter.MatchCondition match, X value) throws uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
ExpressionFilterTargetgetFilter in interface ExpressionFilterTarget<T extends AccountingLinkManager.PropertyTargetLink<L,R>>uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionX - type of prop-expressionexpr - expression to matchmatch - kind of matchvalue - to math againstpublic <X> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> getNullFilter(PropExpression<X> expr, boolean is_null) throws uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
ExpressionFilterTargetgetNullFilter in interface ExpressionFilterTarget<T extends AccountingLinkManager.PropertyTargetLink<L,R>>uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionX - type of prop-expressionexpr - expression to matchis_null - match if null when truepublic <Q> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> getRelationFilter(PropExpression<Q> left, uk.ac.ed.epcc.webapp.jdbc.filter.MatchCondition match, PropExpression<Q> right) throws uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
ExpressionFilterTargetgetRelationFilter in interface ExpressionFilterTarget<T extends AccountingLinkManager.PropertyTargetLink<L,R>>uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionpublic uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> getPeriodFilter(uk.ac.ed.epcc.webapp.time.Period period, PropExpression<java.util.Date> start, PropExpression<java.util.Date> end, OverlapType type, long cutoff) throws uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
ExpressionFilterTargetgetPeriodFilter in interface ExpressionFilterTarget<T extends AccountingLinkManager.PropertyTargetLink<L,R>>uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionperiod - Period to overlapstart - start propertyend - end propertytype - OverlapTypecutoff - maximum length of records zero if not knownpublic <I> uk.ac.ed.epcc.webapp.jdbc.filter.OrderFilter<T> getOrderFilter(boolean descending, PropExpression<I> expr) throws uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
getOrderFilter in interface ExpressionFilterTarget<T extends AccountingLinkManager.PropertyTargetLink<L,R>>uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionpublic <I> boolean compatible(PropExpression<I> expr)
ExpressionTargetGeneratorcompatible in interface ExpressionTargetGenerator<T extends AccountingLinkManager.PropertyTargetLink<L,R>>public final <X> uk.ac.ed.epcc.webapp.jdbc.expr.SQLExpression<X> getSQLExpression(PropExpression<X> exp) throws InvalidSQLPropertyException
getSQLExpression in interface ExpressionTargetFactory<T extends AccountingLinkManager.PropertyTargetLink<L,R>>InvalidSQLPropertyExceptionpublic final boolean compatible(RecordSelector sel)
PropertyTargetGeneratorcompatible in interface PropertyTargetGenerator<T extends AccountingLinkManager.PropertyTargetLink<L,R>>protected final uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> getFilter(RecordSelector selector) throws uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
RecordSelectoruk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionselector - public final java.util.Iterator<T> getIterator(RecordSelector sel) throws uk.ac.ed.epcc.webapp.model.data.Exceptions.DataFault, uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
PropertyTargetGeneratorgetIterator in interface PropertyTargetGenerator<T extends AccountingLinkManager.PropertyTargetLink<L,R>>uk.ac.ed.epcc.webapp.model.data.Exceptions.DataFaultuk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionsel - RecordSelector to select datapublic final java.util.Iterator<T> getIterator(RecordSelector sel, int skip, int count) throws uk.ac.ed.epcc.webapp.model.data.Exceptions.DataFault, uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
PropertyTargetGeneratorgetIterator in interface PropertyTargetGenerator<T extends AccountingLinkManager.PropertyTargetLink<L,R>>uk.ac.ed.epcc.webapp.model.data.Exceptions.DataFaultuk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionsel - RecordSelector to select dataskip - Number of initial records in sequence to skipcount - MAximum number of records to returnpublic final long getRecordCount(RecordSelector selector) throws java.lang.Exception
PropertyTargetGeneratorgetRecordCount in interface PropertyTargetGenerator<T extends AccountingLinkManager.PropertyTargetLink<L,R>>java.lang.Exceptionpublic final <PT> java.util.Set<PT> getValues(PropertyTag<PT> tag, RecordSelector selector) throws uk.ac.ed.epcc.webapp.jdbc.exception.DataException, InvalidPropertyException, uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
PropertyTargetGeneratorgetValues in interface PropertyTargetGenerator<T extends AccountingLinkManager.PropertyTargetLink<L,R>>uk.ac.ed.epcc.webapp.jdbc.exception.DataExceptionInvalidPropertyExceptionuk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptiontag - the data_tagselector - the selectorpublic final T find(RecordSelector sel) throws uk.ac.ed.epcc.webapp.jdbc.exception.DataException, uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
uk.ac.ed.epcc.webapp.jdbc.exception.DataExceptionuk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionpublic void release()
release in class uk.ac.ed.epcc.webapp.model.data.DataObjectFactory<T extends AccountingLinkManager.PropertyTargetLink<L,R>>