T - public abstract class DataObjectPropertyFactory<T extends DataObjectPropertyContainer> extends uk.ac.ed.epcc.webapp.model.data.table.TableStructureDataObjectFactory<T> implements ExpressionTargetFactory<T>, DerivedPropertyFactory
| Modifier and Type | Class and Description |
|---|---|
protected class |
DataObjectPropertyFactory.DataObjectTableRegistry |
uk.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| Constructor and Description |
|---|
DataObjectPropertyFactory() |
| 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.
|
T |
find(RecordSelector sel) |
protected abstract AccessorMap<T> |
getAccessorMap() |
<R> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> |
getFilter(PropExpression<R> expr,
uk.ac.ed.epcc.webapp.jdbc.filter.MatchCondition match,
R 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 |
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.
|
<R> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> |
getNullFilter(PropExpression<R> 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 a
RecordSelector |
<R> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> |
getRelationFilter(PropExpression<R> left,
uk.ac.ed.epcc.webapp.jdbc.filter.MatchCondition match,
PropExpression<R> 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() |
<R> uk.ac.ed.epcc.webapp.jdbc.expr.SQLExpression<R> |
getSQLExpression(PropExpression<R> 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 DataObjectPropertyFactory.DataObjectTableRegistry |
makeTableRegistry() |
<X> int |
update(PropertyTag<X> tag,
X value,
RecordSelector sel)
Perform an update in the database
|
getTableTransitionID, getTableTransitionRegistry, resetStructureall, allowPreSelect, canCreate, canUpdate, customiseForm, equals, exists, find, find, find, find, find, getAllIterator, getComposite, getComposites, getConfigTag, getContext, getCount, getDefaults, getDefaultTableSpecification, getFormCreator, getFormUpdate, getIndex, getInput, 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, release, restrictDefaultInput, setContext, setContext, setContextWithMake, setProperty, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetFindergetDerivedPropertiesprotected DataObjectPropertyFactory.DataObjectTableRegistry makeTableRegistry()
makeTableRegistry in class uk.ac.ed.epcc.webapp.model.data.table.TableStructureDataObjectFactory<T extends DataObjectPropertyContainer>protected abstract AccessorMap<T> getAccessorMap()
protected java.util.Map<java.lang.String,java.lang.Object> getSelectors()
getSelectors in class uk.ac.ed.epcc.webapp.model.data.DataObjectFactory<T extends DataObjectPropertyContainer>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 DataObjectPropertyContainer>getTarget in interface uk.ac.ed.epcc.webapp.Targetted<T extends DataObjectPropertyContainer>getTarget in class uk.ac.ed.epcc.webapp.model.data.DataObjectFactory<T extends DataObjectPropertyContainer>public final <X> boolean hasProperty(PropertyTag<X> p)
hasProperty in interface PropertyTargetFactoryp - public final <R> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> getFilter(PropExpression<R> expr, uk.ac.ed.epcc.webapp.jdbc.filter.MatchCondition match, R value) throws uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
ExpressionFilterTargetgetFilter in interface ExpressionFilterTarget<T extends DataObjectPropertyContainer>uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionR - type of prop-expressionexpr - expression to matchmatch - kind of matchvalue - to math againstpublic final <R> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> getRelationFilter(PropExpression<R> left, uk.ac.ed.epcc.webapp.jdbc.filter.MatchCondition match, PropExpression<R> right) throws uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
ExpressionFilterTargetgetRelationFilter in interface ExpressionFilterTarget<T extends DataObjectPropertyContainer>uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionpublic final <R> uk.ac.ed.epcc.webapp.jdbc.filter.BaseFilter<T> getNullFilter(PropExpression<R> expr, boolean is_null) throws uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
ExpressionFilterTargetgetNullFilter in interface ExpressionFilterTarget<T extends DataObjectPropertyContainer>uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionR - type of prop-expressionexpr - expression to matchis_null - match if null when truepublic 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 DataObjectPropertyContainer>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 DataObjectPropertyContainer>uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionprotected 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 <R> uk.ac.ed.epcc.webapp.jdbc.expr.SQLExpression<R> getSQLExpression(PropExpression<R> exp) throws InvalidSQLPropertyException
getSQLExpression in interface ExpressionTargetFactory<T extends DataObjectPropertyContainer>InvalidSQLPropertyExceptionpublic 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 DataObjectPropertyContainer>uk.ac.ed.epcc.webapp.jdbc.exception.DataExceptionInvalidPropertyExceptionuk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptiontag - the data_tagselector - the selectorpublic final <X> int update(PropertyTag<X> tag, X value, RecordSelector sel) throws uk.ac.ed.epcc.webapp.model.data.Exceptions.DataFault, InvalidPropertyException, uk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterException
uk.ac.ed.epcc.webapp.model.data.Exceptions.DataFaultInvalidPropertyExceptionuk.ac.ed.epcc.webapp.jdbc.expr.CannotFilterExceptionX - tag - value - sel - public 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 final <I> boolean compatible(PropExpression<I> expr)
ExpressionTargetGeneratorcompatible in interface ExpressionTargetGenerator<T extends DataObjectPropertyContainer>public final boolean compatible(RecordSelector sel)
PropertyTargetGeneratorcompatible in interface PropertyTargetGenerator<T extends DataObjectPropertyContainer>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 DataObjectPropertyContainer>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 DataObjectPropertyContainer>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
RecordSelectorgetRecordCount in interface PropertyTargetGenerator<T extends DataObjectPropertyContainer>java.lang.Exception