@Internal public final class UnknownCallContext extends Object implements CallContext
CallContext with unknown data types.| Constructor and Description |
|---|
UnknownCallContext(DataTypeLookup lookup,
String name,
FunctionDefinition functionDefinition,
int argumentCount) |
| Modifier and Type | Method and Description |
|---|---|
List<DataType> |
getArgumentDataTypes()
Returns a resolved list of the call's argument types.
|
<T> Optional<T> |
getArgumentValue(int pos,
Class<T> clazz)
Returns the literal value of the argument at the given position, given that the argument is a
literal, is not null, and can be expressed as an instance of the provided class.
|
DataTypeLookup |
getDataTypeLookup()
Enables to lookup types in a catalog and resolve RAW types.
|
FunctionDefinition |
getFunctionDefinition()
Returns the function definition that defines the function currently being called.
|
String |
getName()
Returns the function's name usually referencing the function in a catalog.
|
Optional<DataType> |
getOutputDataType()
Returns the inferred output data type of the function call.
|
boolean |
isArgumentLiteral(int pos)
Returns whether the argument at the given position is a value literal.
|
boolean |
isArgumentNull(int pos)
Returns
true if the argument at the given position is a literal and null,
false otherwise. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitnewValidationErrorpublic UnknownCallContext(DataTypeLookup lookup, String name, FunctionDefinition functionDefinition, int argumentCount)
public DataTypeLookup getDataTypeLookup()
CallContextgetDataTypeLookup in interface CallContextpublic FunctionDefinition getFunctionDefinition()
CallContextgetFunctionDefinition in interface CallContextpublic boolean isArgumentLiteral(int pos)
CallContextisArgumentLiteral in interface CallContextpublic boolean isArgumentNull(int pos)
CallContexttrue if the argument at the given position is a literal and null,
false otherwise.
Use CallContext.isArgumentLiteral(int) before to check if the argument is actually a literal.
isArgumentNull in interface CallContextpublic <T> Optional<T> getArgumentValue(int pos, Class<T> clazz)
CallContextUse CallContext.isArgumentLiteral(int) before to check if the argument is actually a literal.
getArgumentValue in interface CallContextpublic String getName()
CallContextNote: The name is meant for debugging purposes only.
getName in interface CallContextpublic List<DataType> getArgumentDataTypes()
CallContextgetArgumentDataTypes in interface CallContextpublic Optional<DataType> getOutputDataType()
CallContextIt does this by inferring the input argument data type using
ArgumentTypeStrategy.inferArgumentType(CallContext, int, boolean) of a wrapping call (if
available) where this function call is an argument. For example, takes_string(this_function(NULL))
would lead to a DataTypes.STRING() because the wrapping call expects a string argument.
getOutputDataType in interface CallContextCopyright © 2014–2020 The Apache Software Foundation. All rights reserved.