public abstract class JoinMerger extends Object
QueryEngine
class to efficiently
merge together two parts of a join query.
Each join condition type (equi-
and
same
, child
or descendant
node joins) has it's own
merger class that extends the functionality of this abstract base class
with functionality specific to that join condition.
Modifier and Type | Method and Description |
---|---|
static JoinMerger |
getJoinMerger(Join join,
Map<String,PropertyValue> columns,
OperandEvaluator evaluator,
QueryObjectModelFactory factory)
Static factory method for creating a merger for the given join.
|
Set<String> |
getLeftSelectors() |
abstract Set<String> |
getLeftValues(Row row) |
abstract List<Constraint> |
getRightJoinConstraints(List<Row> leftRows) |
Set<String> |
getRightSelectors() |
abstract Set<String> |
getRightValues(Row row) |
QueryResult |
merge(RowIterator leftRows,
RowIterator rightRows) |
public static JoinMerger getJoinMerger(Join join, Map<String,PropertyValue> columns, OperandEvaluator evaluator, QueryObjectModelFactory factory) throws RepositoryException
join
- joincolumns
- columns of the queryevaluator
- operand evaluatorfactory
- QOM factoryRepositoryException
- if the merger can not be createdpublic QueryResult merge(RowIterator leftRows, RowIterator rightRows) throws RepositoryException
RepositoryException
public abstract Set<String> getLeftValues(Row row) throws RepositoryException
RepositoryException
public abstract Set<String> getRightValues(Row row) throws RepositoryException
RepositoryException
"Copyright © 2006 - 2015 Adobe Systems Incorporated. All Rights Reserved"