S
- row class of table that is source of cascadeT
- row class of table that is target of cascadepublic class SelectCascadeOperation<S,T> extends CascadeOperation<S,T>
Constructor and Description |
---|
SelectCascadeOperation(Table<S> sourceTable,
RowField<S,?> targetField,
Table<T> targetTable,
SelectCascade selectCascadeAnnotation)
Constructor used by
SelectOperation . |
Modifier and Type | Method and Description |
---|---|
void |
cascade(S sourceRow)
Performs cascade operation.
|
void |
close()
Cleans up by closing any JDBC resources.
|
java.util.Map<java.lang.Class<?>,java.util.function.BiPredicate<?,java.lang.Boolean>> |
getFilterPredicateMap()
Gets a map of all filters used by this operation and lower level cascades.
|
SelectCascadeFilter<?>[] |
getSelectCascadeFilters()
Deprecated.
Replaced by
getFilterPredicateMap() |
boolean |
isSourcePrimaryKeyFields() |
boolean |
isSourceTargetFieldNames() |
boolean |
isWhereForeignKeyValueFields() |
boolean |
isWhereSourceFieldNames() |
void |
prepare()
Prepares operation by initializing JDBC statements.
|
protected void |
prepareParameterFields()
Uses reflection to get fields for each of the source class
variables that will be read from source and set as parameters on
cascade operation.
|
protected void |
prepareWhere()
Configures the
WhereTranslator to use for cascade. |
void |
setFilterPredicateMap(java.util.Map<java.lang.Class<?>,java.util.function.BiPredicate<?,java.lang.Boolean>> filterPredicateMap)
Sets the map of all filters used by this operation and lower level cascades.
|
protected void |
setParameters(S sourceRow)
cascade(S) invokes this method to set parameters in cascade operation based
upon parameter fields that were created by prepareParameterFields() . |
void |
setSelectCascadeFilters(SelectCascadeFilter<?>... selectCascadeFilters)
Deprecated.
Replaced by
setFilterPredicateMap(Map) |
protected T[] |
toTargetArray(java.util.Collection<T> c) |
createOperation, getForeignKeyReferenceFieldName, getForeignKeyValueFieldNames, getKeyFieldCount, getNamedParameterMap, getRequiredCascades, getSourceRow, getSourceTable, getTargetField, getTargetForeignKeyValueFieldList, getTargetTable, isPost, prepareForeignKeyReferenceField, prepareForeignKeyValueFields, setForeignKeyFieldNames, setForeignKeyReference, setForeignKeyReference, setForeignKeyReferenceFieldName, setForeignKeyValues, setForeignKeyValues, setNamedParameterMap, setPost, setRequiredCascades
public SelectCascadeOperation(Table<S> sourceTable, RowField<S,?> targetField, Table<T> targetTable, SelectCascade selectCascadeAnnotation)
SelectOperation
.sourceTable
- cascade originates on row from this tabletargetField
- cascade select operation modifies this fieldtargetTable
- cascade select operation is performed on this tableselectCascadeAnnotation
- cascade operation@Deprecated public void setSelectCascadeFilters(SelectCascadeFilter<?>... selectCascadeFilters)
setFilterPredicateMap(Map)
SelectOperation
with the filters used by the SelectOperation
.selectCascadeFilters
- select filters to use or null if noneScalarSelectOperation.setSelectCascadeFilters(SelectCascadeFilter...)
@Deprecated public SelectCascadeFilter<?>[] getSelectCascadeFilters()
getFilterPredicateMap()
ScalarSelectOperation.getSelectCascadeFilters()
public java.util.Map<java.lang.Class<?>,java.util.function.BiPredicate<?,java.lang.Boolean>> getFilterPredicateMap()
Key is class type to filter. Value is predicate to invoke for filtering. Filter parameters are row class and boolean that indicates true/false if cascade has been performed on row class.
public void setFilterPredicateMap(java.util.Map<java.lang.Class<?>,java.util.function.BiPredicate<?,java.lang.Boolean>> filterPredicateMap)
getFilterPredicateMap()
for details about the map. Typically this method is invoked by a select operation when preparing
lower level cascades.filterPredicateMap
- map of class to filterpublic void cascade(S sourceRow) throws OperationException
cascade
in class CascadeOperation<S,T>
sourceRow
- row in parent table that was source the cascadeOperationException
- if errorpublic void prepare() throws OperationException
CascadeOperation.prepareForeignKeyValueFields()
. Subclasses should override
to perform additional preparation.prepare
in class CascadeOperation<S,T>
OperationException
- if errorpublic boolean isSourcePrimaryKeyFields()
SelectCascade.sourceParameterFieldNames()
is "#primaryKeyFields"public boolean isSourceTargetFieldNames()
SelectCascade.sourceParameterFieldNames()
is "#targetFieldNames"public boolean isWhereSourceFieldNames()
SelectCascade.targetWhereName()
is "#sourceFieldNames"public boolean isWhereForeignKeyValueFields()
SelectCascade.targetWhereName()
is "#foreignKeyValueFields"protected void prepareParameterFields() throws OperationException
setParameters(S)
is
invoked by cascade(S)
.OperationException
- if errorprotected void setParameters(S sourceRow) throws OperationException
cascade(S)
invokes this method to set parameters in cascade operation based
upon parameter fields that were created by prepareParameterFields()
.
Override for custom parameter initialization.sourceRow
- cascade source rowOperationException
- if errorprotected void prepareWhere() throws OperationException
WhereTranslator
to use for cascade.OperationException
- if errorpublic void close() throws OperationException
close
in interface java.lang.AutoCloseable
close
in class CascadeOperation<S,T>
OperationException
- if errorprotected T[] toTargetArray(java.util.Collection<T> c) throws OperationException
OperationException