36 lines
1023 B
Java
36 lines
1023 B
Java
package it.cavallium.luceneserializer.luceneserializer;
|
|
|
|
import java.util.Collection;
|
|
|
|
public class BooleanQuery implements Query {
|
|
|
|
private final BooleanQueryPart[] parts;
|
|
private int minShouldMatch;
|
|
|
|
public BooleanQuery(BooleanQueryPart... parts) {
|
|
this.parts = parts;
|
|
}
|
|
|
|
public BooleanQuery(Collection<BooleanQueryPart> parts) {
|
|
this.parts = parts.toArray(BooleanQueryPart[]::new);
|
|
}
|
|
|
|
public BooleanQuery setMinShouldMatch(int minShouldMatch) {
|
|
this.minShouldMatch = minShouldMatch;
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public void stringify(StringBuilder output) {
|
|
StringBuilder data = new StringBuilder();
|
|
StringifyUtils.stringifyInt(data, minShouldMatch);
|
|
StringBuilder listData = new StringBuilder();
|
|
listData.append(parts.length).append('|');
|
|
for (int i = 0; i < parts.length; i++) {
|
|
parts[i].stringify(listData);
|
|
}
|
|
StringifyUtils.writeHeader(data, QueryConstructorType.BOOLEAN_QUERY_INFO_LIST, listData);
|
|
StringifyUtils.writeHeader(output, QueryConstructorType.BOOLEAN_QUERY, data);
|
|
}
|
|
}
|