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

public Class SqmTreePrinter

extends Object
implements SemanticQueryWalker<Object>
Class Inheritance
All Implemented Interfaces
org.hibernate.query.sqm.SemanticQueryWalker
Imports
java.util.List, .Locale, org.hibernate.metamodel.model.domain.internal.AnyDiscriminatorSqmPath, .EntityDiscriminatorSqmPath, org.hibernate.query.QueryLogging, org.hibernate.query.sqm.SemanticQueryWalker, org.hibernate.query.sqm.tree.SqmStatement, org.hibernate.query.sqm.tree.cte.SqmCteContainer, .SqmCteStatement, org.hibernate.query.sqm.tree.delete.SqmDeleteStatement, org.hibernate.query.sqm.tree.domain.NonAggregatedCompositeSimplePath, .SqmAnyValuedSimplePath, .SqmBasicValuedSimplePath, .SqmCorrelation, .SqmCteRoot, .SqmDerivedRoot, .SqmEmbeddedValuedSimplePath, .SqmEntityValuedSimplePath, .SqmFkExpression, .SqmIndexedCollectionAccessPath, .SqmMapEntryReference, .SqmElementAggregateFunction, .SqmIndexAggregateFunction, .SqmPluralPartJoin, .SqmPluralValuedSimplePath, .SqmTreatedPath, org.hibernate.query.sqm.tree.expression.JpaCriteriaParameter, .SqmAny, .SqmAnyDiscriminatorValue, .SqmBinaryArithmetic, .SqmByUnit, .SqmCaseSearched, .SqmCaseSimple, .SqmCastTarget, .SqmCoalesce, .SqmCollation, .SqmCollectionSize, .SqmDistinct, .SqmDurationUnit, .SqmEnumLiteral, .SqmEvery, .SqmExpression, .SqmExtractUnit, .SqmFieldLiteral, .SqmFormat, .SqmFunction, .SqmHqlNumericLiteral, .SqmLiteral, .SqmLiteralEntityType, .SqmModifiedSubQueryExpression, .SqmNamedParameter, .SqmOver, .SqmOverflow, .SqmParameterizedEntityType, .SqmPositionalParameter, .SqmStar, .SqmSummarization, .SqmToDuration, .SqmTrimSpecification, .SqmTuple, .SqmUnaryOperation, .SqmWindow, org.hibernate.query.sqm.tree.from.SqmAttributeJoin, .SqmCrossJoin, .SqmCteJoin, .SqmDerivedJoin, .SqmEntityJoin, .SqmFrom, .SqmFromClause, .SqmQualifiedJoin, .SqmRoot, org.hibernate.query.sqm.tree.insert.SqmInsertSelectStatement, .SqmInsertValuesStatement, .SqmValues, org.hibernate.query.sqm.tree.predicate.SqmBetweenPredicate, .SqmBooleanExpressionPredicate, .SqmComparisonPredicate, .SqmEmptinessPredicate, .SqmExistsPredicate, .SqmGroupedPredicate, .SqmInListPredicate, .SqmInSubQueryPredicate, .SqmJunctionPredicate, .SqmLikePredicate, .SqmMemberOfPredicate, .SqmNegatedPredicate, .SqmNullnessPredicate, .SqmPredicate, .SqmTruthnessPredicate, .SqmWhereClause, org.hibernate.query.sqm.tree.select.SqmDynamicInstantiation, .SqmJpaCompoundSelection, .SqmOrderByClause, .SqmQueryGroup, .SqmQueryPart, .SqmQuerySpec, .SqmSelectClause, .SqmSelectStatement, .SqmSelectableNode, .SqmSelection, .SqmSortSpecification, .SqmSubQuery, org.hibernate.query.sqm.tree.update.SqmAssignment, .SqmSetClause, .SqmUpdateStatement, org.jboss.logging.Logger, jakarta.persistence.criteria.Predicate

Printer for an SQM tree - for debugging purpose

Implementation Note

At the top-level (statement) we check against DEBUG_ENABLED and decide whether to continue or not. That's to avoid unnecessary, continued checking of that boolean. The assumption being that we only ever enter from these statement rules

Author
Steve Ebersole

Field Summary

Modifier and TypeField and Description
private final StringBuffer
private static final boolean
private int
private boolean
private static final Logger
private static final Logger

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private void
private void
logIndented(String pattern, Object arg)

private void
logIndented(String pattern, Object arg1, Object arg2)

private void
logIndented(String pattern, Object... args)

public static void
logTree(SqmQuerySpec<T> sqmQuerySpec, String header)

public static void
logTree(SqmStatement<T> sqmStatement)

private void
private void
private void
logWithIndentation(String pattern, Object arg1, Object arg2)

private void
logWithIndentation(String pattern, Object... args)

private void
pad(int depth)

private void
processJoinPredicate(SqmQualifiedJoin<?, ?> joinedFromElement)

private void
processJoins(SqmFrom<?, ?> sqmFrom)

private void
processStanza(String name, Runnable continuation)

private void
processStanza(String name, String description, Runnable continuation)

private void
processStanza(String name, boolean indentContinuation, Runnable continuation)

private void
processStanza(String name, String description, boolean indentContinuation, Runnable continuation)

public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public <N extends Number> Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
public Object
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait