public static class DefaultFactory
implements Factory
{
private final OrderingCompiler orderingCompiler;
private final JoinCompiler joinCompiler;
private final boolean eagerCompact;
private final FunctionRegistry functionRegistry;
private final boolean groupByUsesEqualTo;
@Inject
public DefaultFactory(OrderingCompiler orderingCompiler, JoinCompiler joinCompiler, FeaturesConfig featuresConfig, Metadata metadata)
{
this.orderingCompiler = requireNonNull(orderingCompiler, "orderingCompiler is null");
this.joinCompiler = requireNonNull(joinCompiler, "joinCompiler is null");
this.eagerCompact = requireNonNull(featuresConfig, "featuresConfig is null").isPagesIndexEagerCompactionEnabled();
this.functionRegistry = requireNonNull(metadata, "metadata is null").getFunctionRegistry();
this.groupByUsesEqualTo = featuresConfig.isGroupByUsesEqualTo();
}
@Override
public PagesIndex newPagesIndex(List<Type> types, int expectedPositions)
{
return new PagesIndex(orderingCompiler, joinCompiler, functionRegistry, groupByUsesEqualTo, types, expectedPositions, eagerCompact);
}
}