Top Description Inners Fields Constructors Methods
org.hibernate.query.sqm.tree.expression

public Class SqmHqlNumericLiteral<N extends java.lang.Number>

extends SqmLiteral<N extends Number>
Class Inheritance
Imports
java.math.BigDecimal, .BigInteger, java.util.Locale, org.hibernate.HibernateException, org.hibernate.metamodel.model.domain.BasicDomainType, org.hibernate.query.sqm.NodeBuilder, .SemanticQueryWalker, .SqmExpressible, org.hibernate.query.sqm.tree.SqmCopyContext, org.hibernate.type.descriptor.java.JavaType

Used to model numeric literals found in HQL queries.

Used instead of SqmLiteral which would require parsing the literal value to the specified number type to avoid loss of precision due to Float and Double being non-exact types.

API Note

Only used for HQL literals because we do not have this problem with criteria queries where the value given us by user would already be typed.

Author
Steve Ebersole

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
private final String
private final NumericTypeCategory

Constructor Summary

AccessConstructor and Description
public
SqmHqlNumericLiteral(String literalValue, BasicDomainType<N> type, NodeBuilder criteriaBuilder)

public
SqmHqlNumericLiteral(String literalValue, NumericTypeCategory typeCategory, BasicDomainType<N> type, NodeBuilder criteriaBuilder)

Method Summary

Modifier and TypeMethod and Description
public <X> X
public void
public String
public SqmHqlNumericLiteral<N>
public BasicDomainType<N>
public N
public BasicDomainType<N>
public NumericTypeCategory
public String
private static <N extends Number> NumericTypeCategory
interpretCategory(String literalValue, SqmExpressible<N> type)

Inherited from org.hibernate.query.sqm.tree.expression.SqmLiteral:
appendHqlString

Field Detail

literalValueback to summary
private final String literalValue
typeCategoryback to summary
private final NumericTypeCategory typeCategory

Constructor Detail

SqmHqlNumericLiteralback to summary
public SqmHqlNumericLiteral(String literalValue, BasicDomainType<N> type, NodeBuilder criteriaBuilder)
SqmHqlNumericLiteralback to summary
public SqmHqlNumericLiteral(String literalValue, NumericTypeCategory typeCategory, BasicDomainType<N> type, NodeBuilder criteriaBuilder)

Method Detail

acceptback to summary
public <X> X accept(SemanticQueryWalker<X> walker)

Overrides org.hibernate.query.sqm.tree.expression.SqmLiteral.accept.

Implements org.hibernate.query.sqm.tree.SqmVisitableNode.accept.

Doc from org.hibernate.query.sqm.tree.SqmVisitableNode.accept.

Accept the walker per visitation

Annotations
@Override
appendHqlStringback to summary
public void appendHqlString(StringBuilder sb)

Overrides org.hibernate.query.sqm.tree.expression.SqmLiteral.appendHqlString.

Implements org.hibernate.query.sqm.tree.SqmVisitableNode.appendHqlString.

Annotations
@Override
asLoggableTextback to summary
public String asLoggableText()

Overrides org.hibernate.query.sqm.tree.expression.SqmLiteral.asLoggableText.

Overrides default org.hibernate.query.sqm.tree.SqmNode.asLoggableText.

Annotations
@Override
copyback to summary
public SqmHqlNumericLiteral<N> copy(SqmCopyContext context)

Overrides org.hibernate.query.sqm.tree.expression.SqmLiteral.copy.

Implements org.hibernate.query.sqm.tree.expression.SqmExpression.copy, org.hibernate.query.sqm.tree.select.SqmSelectableNode.copy, org.hibernate.query.sqm.tree.SqmNode.copy.

Annotations
@Override
getExpressibleback to summary
public BasicDomainType<N> getExpressible()

Overrides default org.hibernate.query.sqm.tree.SqmTypedNode.getExpressible.

Annotations
@Override
getLiteralValueback to summary
public N getLiteralValue()

Overrides org.hibernate.query.sqm.tree.expression.SqmLiteral.getLiteralValue.

Annotations
@Override
getNodeTypeback to summary
public BasicDomainType<N> getNodeType()

Overrides org.hibernate.query.sqm.tree.jpa.AbstractJpaTupleElement.getNodeType.

Implements org.hibernate.query.sqm.tree.expression.SqmExpression.getNodeType, org.hibernate.query.sqm.tree.SqmTypedNode.getNodeType.

Doc from org.hibernate.query.sqm.tree.expression.SqmExpression.getNodeType.

The expression's type.

Can change as a result of calls to applyInferableType

Annotations
@Override
getTypeCategoryback to summary
public NumericTypeCategory getTypeCategory()
getUnparsedLiteralValueback to summary
public String getUnparsedLiteralValue()
interpretCategoryback to summary
private static <N extends Number> NumericTypeCategory interpretCategory(String literalValue, SqmExpressible<N> type)
org.hibernate.query.sqm.tree.expression back to summary

public Class SqmHqlNumericLiteral.TypeException

extends HibernateException
Class Inheritance

Constructor Summary

AccessConstructor and Description
public
TypeException(String literalValue, Class<?> javaType)

Constructor Detail

TypeExceptionback to summary
public TypeException(String literalValue, Class<?> javaType)