Top Description Fields Constructors Methods
org.hibernate.query.sqm.function

public Class NamedSqmFunctionDescriptor

extends AbstractSqmSelfRenderingFunctionDescriptor
Class Inheritance
Known Direct Subclasses
org.hibernate.dialect.function.StandardSQLFunction
Imports
org.hibernate.query.ReturnableType, org.hibernate.query.sqm.produce.function.ArgumentsValidator, .FunctionArgumentTypeResolver, .FunctionReturnTypeResolver, org.hibernate.sql.ast.Clause, .SqlAstNodeRenderingMode, .SqlAstTranslator, org.hibernate.sql.ast.spi.SqlAppender, org.hibernate.sql.ast.tree.SqlAstNode, org.hibernate.sql.ast.tree.expression.Distinct, .Star, org.hibernate.sql.ast.tree.predicate.Predicate, org.hibernate.sql.ast.tree.select.SortSpecification, java.util.Collections, .List, .Locale

Deprecated

as a consequence of AbstractSqmSelfRenderingFunctionDescriptor being deprecated. See corresponding docs for further information.

Provides a standard implementation that supports the majority of the HQL functions that are translated to SQL. The Dialect and its sub-classes use this class to provide details required for processing of the associated function.
Authors
David Channon, Steve Ebersole

Field Summary

Modifier and TypeField and Description
private final String
private final SqlAstNodeRenderingMode
private final String
private final boolean

Constructor Summary

AccessConstructor and Description
public
NamedSqmFunctionDescriptor(String functionName, boolean useParenthesesWhenNoArgs, ArgumentsValidator argumentsValidator, FunctionReturnTypeResolver returnTypeResolver)

public
NamedSqmFunctionDescriptor(String functionName, boolean useParenthesesWhenNoArgs, ArgumentsValidator argumentsValidator, FunctionReturnTypeResolver returnTypeResolver, FunctionArgumentTypeResolver argumentTypeResolver)

public
NamedSqmFunctionDescriptor(String functionName, boolean useParenthesesWhenNoArgs, ArgumentsValidator argumentsValidator, FunctionReturnTypeResolver returnTypeResolver, FunctionArgumentTypeResolver argumentTypeResolver, String name, FunctionKind functionKind, String argumentListSignature, SqlAstNodeRenderingMode argumentRenderingMode)

Method Summary

Modifier and TypeMethod and Description
public boolean
alwaysIncludesParentheses()

Overrides default org.hibernate.query.sqm.function.SqmFunctionDescriptor.alwaysIncludesParentheses.

Will a call to the described function always include parentheses?
public String
public String

Returns:

The function name.
getName
()

Overrides org.hibernate.query.sqm.function.AbstractSqmFunctionDescriptor.getName.

Function name accessor
public void
public void
render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, ReturnableType<?> returnType, SqlAstTranslator<?> translator)

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

public void
render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, List<SortSpecification> withinGroup, ReturnableType<?> returnType, SqlAstTranslator<?> translator)

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

public void
render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, Boolean respectNulls, Boolean fromFirst, ReturnableType<?> returnType, SqlAstTranslator<?> walker)

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

private void
render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, List<SortSpecification> withinGroup, Boolean respectNulls, Boolean fromFirst, SqlAstTranslator<?> translator)

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
Inherited from org.hibernate.query.sqm.function.AbstractSqmSelfRenderingFunctionDescriptor:
generateSqmAggregateFunctionExpressiongenerateSqmFunctionExpressiongenerateSqmOrderedSetAggregateFunctionExpressiongenerateSqmWindowFunctionExpressiongetFunctionKind

Field Detail

argumentListSignatureback to summary
private final String argumentListSignature
argumentRenderingModeback to summary
private final SqlAstNodeRenderingMode argumentRenderingMode
functionNameback to summary
private final String functionName
useParenthesesWhenNoArgsback to summary
private final boolean useParenthesesWhenNoArgs

Constructor Detail

NamedSqmFunctionDescriptorback to summary
public NamedSqmFunctionDescriptor(String functionName, boolean useParenthesesWhenNoArgs, ArgumentsValidator argumentsValidator, FunctionReturnTypeResolver returnTypeResolver)
NamedSqmFunctionDescriptorback to summary
public NamedSqmFunctionDescriptor(String functionName, boolean useParenthesesWhenNoArgs, ArgumentsValidator argumentsValidator, FunctionReturnTypeResolver returnTypeResolver, FunctionArgumentTypeResolver argumentTypeResolver)
NamedSqmFunctionDescriptorback to summary
public NamedSqmFunctionDescriptor(String functionName, boolean useParenthesesWhenNoArgs, ArgumentsValidator argumentsValidator, FunctionReturnTypeResolver returnTypeResolver, FunctionArgumentTypeResolver argumentTypeResolver, String name, FunctionKind functionKind, String argumentListSignature, SqlAstNodeRenderingMode argumentRenderingMode)

Method Detail

alwaysIncludesParenthesesback to summary
public boolean alwaysIncludesParentheses()

Overrides default org.hibernate.query.sqm.function.SqmFunctionDescriptor.alwaysIncludesParentheses.

Doc from org.hibernate.query.sqm.function.SqmFunctionDescriptor.alwaysIncludesParentheses.

Will a call to the described function always include parentheses?

Instances of this interface are usually used for rendering of functions. However, there are cases where Hibernate needs to consume a fragment and decide if a token represents a function name. In cases where the token is followed by an opening parenthesis, we can safely assume the token is a function name. Bur if the next token is not an opening parenthesis, the token might still represent a function if the function has a "no paren" form in the case of no arguments.

For example, many databases do not require parentheses for functions like current_timestamp and friends. This method helps account for those cases.

Returns:boolean

true by default

Annotations
@Override
getArgumentListSignatureback to summary
public String getArgumentListSignature()

Overrides org.hibernate.query.sqm.function.AbstractSqmFunctionDescriptor.getArgumentListSignature.

Annotations
@Override
getNameback to summary
public String getName()

Overrides org.hibernate.query.sqm.function.AbstractSqmFunctionDescriptor.getName.

Function name accessor

Returns:String

The function name.

renderback to summary
public void render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, ReturnableType<?> returnType, SqlAstTranslator<?> translator)

Overrides org.hibernate.query.sqm.function.AbstractSqmSelfRenderingFunctionDescriptor.render.

Implements org.hibernate.query.sqm.function.FunctionRenderer.render.

Annotations
@Override
renderback to summary
public void render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, ReturnableType<?> returnType, SqlAstTranslator<?> translator)

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

Annotations
@Override
renderback to summary
public void render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, List<SortSpecification> withinGroup, ReturnableType<?> returnType, SqlAstTranslator<?> translator)

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

Annotations
@Override
renderback to summary
public void render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, Boolean respectNulls, Boolean fromFirst, ReturnableType<?> returnType, SqlAstTranslator<?> walker)

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

Annotations
@Override
renderback to summary
private void render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, List<SortSpecification> withinGroup, Boolean respectNulls, Boolean fromFirst, SqlAstTranslator<?> translator)
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override