import com.noctarius.borabora.impl.query.stages.DictionaryLookupQueryStage;
import com.noctarius.borabora.impl.query.stages.SequenceIndexQueryStage;
import com.noctarius.borabora.impl.query.stages.SequenceMatcherQueryStage;
import com.noctarius.borabora.impl.query.stages.TypeMatcherQueryStage;
import com.noctarius.borabora.spi.query.TypeSpec;
<BUG>import com.noctarius.borabora.spi.query.ProjectionStrategy;</BUG>
import com.noctarius.borabora.spi.query.pipeline.QueryBuilderNode;
import java.util.Objects;
import java.util.function.Predicate;
abstract class AbstractQueryBuilder {
protected final QueryBuilderNode parentTreeNode;
<BUG>protected final ProjectionStrategy projectionStrategy;</BUG>
protected QueryBuilderNode currentTreeNode;

import com.noctarius.borabora.impl.query.stages.DictionaryLookupQueryStage;
import com.noctarius.borabora.impl.query.stages.SequenceIndexQueryStage;
import com.noctarius.borabora.impl.query.stages.SequenceMatcherQueryStage;
import com.noctarius.borabora.impl.query.stages.TypeMatcherQueryStage;
import com.noctarius.borabora.spi.query.TypeSpec;
import com.noctarius.borabora.spi.query.pipeline.QueryBuilderNode;
import java.util.Objects;
import java.util.function.Predicate;
abstract class AbstractQueryBuilder {
