/** * Feeds a QuerySpace into this spaces group. * * @param querySpace The space */ private void registerQuerySpace(QuerySpace querySpace) { log.debugf( "Adding QuerySpace : uid = %s -> %s]", querySpace.getUid(), querySpace ); final QuerySpace previous = querySpaceByUid.put( querySpace.getUid(), querySpace ); if ( previous != null ) { throw new IllegalStateException( "Encountered duplicate QuerySpace uid : " + querySpace.getUid() ); } }
private void handleCompositeJoin(Join join, JoinFragment joinFragment) { final String leftHandSideUid = join.getLeftHandSide().getUid(); final String rightHandSideUid = join.getRightHandSide().getUid(); final String leftHandSideTableAlias = aliasResolutionContext.resolveSqlTableAliasFromQuerySpaceUid( leftHandSideUid ); if ( leftHandSideTableAlias == null ) { throw new IllegalStateException( "QuerySpace with that UID was not yet registered in the AliasResolutionContext" ); } aliasResolutionContext.registerCompositeQuerySpaceUidResolution( rightHandSideUid, leftHandSideTableAlias ); }
private void dumpJoins(Iterable<Join> joins, int depth, PrintWriter printWriter) { for ( Join join : joins ) { printWriter.println( TreePrinterHelper.INSTANCE.generateNodePrefix( depth ) + "JOIN (" + join.getLeftHandSide().getUid() + " -> " + join.getRightHandSide() .getUid() + ")" ); dumpQuerySpace( join.getRightHandSide(), depth+1, printWriter ); } } }
public void processQuerySpaceJoins(QuerySpace querySpace, SelectStatementBuilder selectStatementBuilder) { LOG.debug( "processing queryspace " + querySpace.getUid() ); final JoinFragment joinFragment = factory.getDialect().createOuterJoinFragment(); processQuerySpaceJoins( querySpace, joinFragment ); selectStatementBuilder.setOuterJoins( joinFragment.toFromFragmentString(), joinFragment.toWhereFragmentString() ); }
private void generateDetailLines(QuerySpace querySpace, int depth, PrintWriter printWriter) { printWriter.println( TreePrinterHelper.INSTANCE.generateNodePrefix( depth ) + querySpace.getUid() + " -> " + extractDetails( querySpace ) ); printWriter.println( TreePrinterHelper.INSTANCE.generateNodePrefix( depth+3 ) + "SQL table alias mapping - " + resolveSqlTableAliasFromQuerySpaceUid( querySpace.getUid() ) ); final EntityReferenceAliases entityAliases = resolveEntityReferenceAliases( querySpace.getUid() ); final CollectionReferenceAliases collectionReferenceAliases = resolveCollectionReferenceAliases( querySpace.getUid() );
TreePrinterHelper.INSTANCE.generateNodePrefix( depth + detailDepthOffset ) + "SQL table alias mapping - " + aliasResolutionContext.resolveSqlTableAliasFromQuerySpaceUid( querySpace.getUid() final EntityReferenceAliases entityAliases = aliasResolutionContext.resolveEntityReferenceAliases( querySpace.getUid() ); final CollectionReferenceAliases collectionReferenceAliases = aliasResolutionContext.resolveCollectionReferenceAliases( querySpace.getUid() );
join.getRightHandSide().getUid() );