package jpasearch.repository.query.builder;
import jpasearch.repository.query.SearchParameters;
import jpasearch.repository.query.selector.Selectors;
/**
* @author speralta
*/
public class RootSelectorsBuilder<FROM> extends SelectorsBuilder<FROM, SearchBuilder<FROM>, RootSelectorsBuilder<FROM>> {
public RootSelectorsBuilder(SearchBuilder<FROM> parent, Selectors<FROM> propertySelectors) {
super(parent, propertySelectors);
}
public RootSelectorsBuilder(SearchBuilder<FROM> parent) {
super(parent);
}
public DisjunctionSelectorsBuilder<FROM, RootSelectorsBuilder<FROM>> disjunction() {
DisjunctionSelectorsBuilder<FROM, RootSelectorsBuilder<FROM>> disjunction = new DisjunctionSelectorsBuilder<FROM, RootSelectorsBuilder<FROM>>(this);
selectors.add(disjunction.getSelectors());
return disjunction;
}
@Override
protected RootSelectorsBuilder<FROM> getThis() {
return this;
}
public SearchParameters<FROM> build() {
return and().build();
}
public SearchBuilder<FROM> and() {
return toParent();
}
}