public class RDFTermTypeFunctionSymbolImpl extends FunctionSymbolImpl implements RDFTermTypeFunctionSymbol
FunctionSymbol.FunctionalTermNullability| Modifier | Constructor and Description |
|---|---|
protected |
RDFTermTypeFunctionSymbolImpl(TypeFactory typeFactory,
TypeConstantDictionary dictionary,
com.google.common.collect.ImmutableBiMap<DBConstant,RDFTermTypeConstant> conversionMap,
boolean isSimplifiable) |
| Modifier and Type | Method and Description |
|---|---|
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)
Still allows the IsNotNull evaluation, even if in "not-simplifiable" mode.
|
protected IncrementalEvaluation |
evaluateStrictEqWithNonNullConstant(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms,
NonNullConstant otherTerm,
TermFactory termFactory,
VariableNullability variableNullability)
Default implementation, does nothing, can be overridden
|
com.google.common.collect.ImmutableBiMap<DBConstant,RDFTermTypeConstant> |
getConversionMap() |
TypeConstantDictionary |
getDictionary() |
RDFTermTypeFunctionSymbol |
getSimplifiableVariant()
By default, RDFTermTypeFunctionSymbol cannot be simplified and are therefore not post-processable.
|
Optional<TermTypeInference> |
inferType(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms) |
boolean |
isAlwaysInjectiveInTheAbsenceOfNonInjectiveFunctionalTerms()
When the function symbol is, in the absence of non-injective functional sub-terms, sometimes but not always injective,
please override isInjective(...)
|
ImmutableFunctionalTerm |
lift(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms,
Function<RDFTermTypeConstant,ImmutableTerm> caseTermFct,
TermFactory termFactory)
Builds a DB CASE functional term with an "entry" for possible DBConstant value.
|
ImmutableExpression |
liftExpression(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms,
Function<RDFTermTypeConstant,ImmutableExpression> caseExpressionFct,
TermFactory termFactory)
Builds a boolean DB CASE functional term with an "entry" for possible DBConstant value.
|
protected boolean |
mayReturnNullWithoutNullArguments()
Returns false when a functional term with this symbol:
1.
|
protected boolean |
tolerateNulls()
NB: to prevent some optimization
|
analyzeInjectivity, canBeSafelyDecomposedIntoConjunction, decomposeInjectiveTopFunctionalTerm, enableIfElseNullLifting, evaluateNullability, evaluateStrictEq, evaluateStrictEqWithFunctionalTerm, getExpectedBaseType, getExpectedBaseTypes, isAggregation, isDeterministic, isInjective, isNullable, proposeProvenanceVariables, simplify, simplifyAsGuaranteedToBeNonNull, transformIntoRegularArguments, tryToLiftMagicNumbersequals, getArity, getName, hashCode, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitliftanalyzeInjectivity, evaluateNullability, evaluateStrictEq, getExpectedBaseType, isAggregation, isDeterministic, isNullable, proposeProvenanceVariables, simplify, simplifyAsGuaranteedToBeNonNullprotected RDFTermTypeFunctionSymbolImpl(TypeFactory typeFactory, TypeConstantDictionary dictionary, com.google.common.collect.ImmutableBiMap<DBConstant,RDFTermTypeConstant> conversionMap, boolean isSimplifiable)
public boolean isAlwaysInjectiveInTheAbsenceOfNonInjectiveFunctionalTerms()
FunctionSymbolImplisAlwaysInjectiveInTheAbsenceOfNonInjectiveFunctionalTerms in class FunctionSymbolImplpublic Optional<TermTypeInference> inferType(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms)
inferType in interface FunctionSymbolprotected ImmutableTerm buildTermAfterEvaluation(com.google.common.collect.ImmutableList<ImmutableTerm> newTerms, TermFactory termFactory, VariableNullability variableNullability)
FunctionSymbolImplbuildTermAfterEvaluation in class FunctionSymbolImplpublic boolean canBePostProcessed(com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments)
FunctionSymbolcanBePostProcessed in interface FunctionSymbolpublic com.google.common.collect.ImmutableBiMap<DBConstant,RDFTermTypeConstant> getConversionMap()
getConversionMap in interface RDFTermTypeFunctionSymbolpublic TypeConstantDictionary getDictionary()
getDictionary in interface RDFTermTypeFunctionSymbolpublic ImmutableFunctionalTerm lift(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms, Function<RDFTermTypeConstant,ImmutableTerm> caseTermFct, TermFactory termFactory)
RDFTermTypeFunctionSymbollift in interface RDFTermTypeFunctionSymbolpublic ImmutableExpression liftExpression(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms, Function<RDFTermTypeConstant,ImmutableExpression> caseExpressionFct, TermFactory termFactory)
RDFTermTypeFunctionSymbolliftExpression in interface RDFTermTypeFunctionSymbolpublic RDFTermTypeFunctionSymbol getSimplifiableVariant()
RDFTermTypeFunctionSymbolgetSimplifiableVariant in interface RDFTermTypeFunctionSymbolprotected boolean mayReturnNullWithoutNullArguments()
FunctionSymbolImplmayReturnNullWithoutNullArguments in class FunctionSymbolImplprotected IncrementalEvaluation evaluateStrictEqWithNonNullConstant(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms, NonNullConstant otherTerm, TermFactory termFactory, VariableNullability variableNullability)
FunctionSymbolImplevaluateStrictEqWithNonNullConstant in class FunctionSymbolImplprotected boolean tolerateNulls()
tolerateNulls in class FunctionSymbolImplpublic IncrementalEvaluation evaluateIsNotNull(com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms, TermFactory termFactory, VariableNullability variableNullability)
evaluateIsNotNull in interface FunctionSymbolevaluateIsNotNull in class FunctionSymbolImplCopyright © 2009–2020 Free University of Bozen-Bolzano. All rights reserved.