public abstract class AbstractDBIsNullOrNotFunctionSymbol extends DBBooleanFunctionSymbolImpl implements DBIsNullOrNotFunctionSymbol
FunctionSymbol.FunctionalTermNullability| Modifier | Constructor and Description |
|---|---|
protected |
AbstractDBIsNullOrNotFunctionSymbol(boolean isNull,
DBTermType dbBooleanTermType,
DBTermType rootDBTermType) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
blocksNegation()
Returns TRUE if the NOT operator has to stay ABOVE the expression
(i.e.
|
protected ImmutableTerm |
buildTermAfterEvaluation(com.google.common.collect.ImmutableList<ImmutableTerm> newTerms,
TermFactory termFactory,
VariableNullability variableNullability)
By default, just build a new functional term.
|
boolean |
canBePostProcessed(com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments)
1.
|
IncrementalEvaluation |
evaluateIsNotNull(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms,
TermFactory termFactory,
VariableNullability variableNullability)
Default implementation, can be overridden
|
boolean |
isAlwaysInjectiveInTheAbsenceOfNonInjectiveFunctionalTerms()
When the function symbol is, in the absence of non-injective functional sub-terms, sometimes but not always injective,
please override isInjective(...)
|
boolean |
isNullable(com.google.common.collect.ImmutableSet<Integer> nullableIndexes)
By default, to be overridden by function symbols that supports tolerate NULL values
|
boolean |
isTrueWhenNull() |
ImmutableExpression |
negate(com.google.common.collect.ImmutableList<? extends ImmutableTerm> subTerms,
TermFactory termFactory)
Usually NOT supported when the function symbol blocks negation.
|
protected boolean |
tolerateNulls()
Returns true if is not guaranteed to return NULL when one argument is NULL.
|
inBrackets, isPreferringToBePostProcessedOverBeingBlocked, mayReturnNullWithoutNullArgumentsenableIfElseNullLifting, inferType, tryToLiftIfThenTerm, tryToLiftMagicNumbersanalyzeInjectivity, canBeSafelyDecomposedIntoConjunction, decomposeInjectiveTopFunctionalTerm, evaluateNullability, evaluateStrictEq, evaluateStrictEqWithFunctionalTerm, evaluateStrictEqWithNonNullConstant, getExpectedBaseType, getExpectedBaseTypes, isAggregation, isDeterministic, isInjective, proposeProvenanceVariables, simplify, simplifyAsGuaranteedToBeNonNull, transformIntoRegularArguments, tryToLiftMagicNumbersequals, getArity, getName, hashCode, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitsimplify2VLisPreferringToBePostProcessedOverBeingBlockedanalyzeInjectivity, evaluateNullability, evaluateStrictEq, getExpectedBaseType, inferType, isAggregation, isDeterministic, proposeProvenanceVariables, simplify, simplifyAsGuaranteedToBeNonNullgetArity, getNamegetNativeDBStringprotected AbstractDBIsNullOrNotFunctionSymbol(boolean isNull,
DBTermType dbBooleanTermType,
DBTermType rootDBTermType)
public boolean blocksNegation()
BooleanFunctionSymbolblocksNegation in interface BooleanFunctionSymbolpublic ImmutableExpression negate(com.google.common.collect.ImmutableList<? extends ImmutableTerm> subTerms, TermFactory termFactory)
BooleanFunctionSymbolnegate in interface BooleanFunctionSymbolpublic boolean isAlwaysInjectiveInTheAbsenceOfNonInjectiveFunctionalTerms()
FunctionSymbolImplisAlwaysInjectiveInTheAbsenceOfNonInjectiveFunctionalTerms in class FunctionSymbolImplpublic boolean canBePostProcessed(com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments)
FunctionSymbolcanBePostProcessed in interface FunctionSymbolprotected ImmutableTerm buildTermAfterEvaluation(com.google.common.collect.ImmutableList<ImmutableTerm> newTerms, TermFactory termFactory, VariableNullability variableNullability)
FunctionSymbolImplbuildTermAfterEvaluation in class BooleanFunctionSymbolImplpublic boolean isNullable(com.google.common.collect.ImmutableSet<Integer> nullableIndexes)
FunctionSymbolImplisNullable in interface FunctionSymbolisNullable in class FunctionSymbolImplprotected boolean tolerateNulls()
FunctionSymbolImpltolerateNulls in class FunctionSymbolImplpublic boolean isTrueWhenNull()
isTrueWhenNull in interface DBIsNullOrNotFunctionSymbolpublic IncrementalEvaluation evaluateIsNotNull(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms, TermFactory termFactory, VariableNullability variableNullability)
FunctionSymbolImplevaluateIsNotNull in interface FunctionSymbolevaluateIsNotNull in class FunctionSymbolImplCopyright © 2009–2020 Free University of Bozen-Bolzano. All rights reserved.