Support default query for groups

Change-Id: I9c8b2026bb872ae08f5435039280dfd1cb25433e
Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
Edwin Kempin
2017-01-04 13:42:51 +01:00
parent b07a4f923e
commit bad459177b
4 changed files with 49 additions and 1 deletions

View File

@@ -14,15 +14,31 @@
package com.google.gerrit.server.query.group;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.server.index.FieldDef;
import com.google.gerrit.server.index.IndexPredicate;
import com.google.gerrit.server.index.group.GroupField;
import com.google.gerrit.server.query.Predicate;
import java.util.List;
import java.util.Locale;
public class GroupPredicates {
public static Predicate<AccountGroup> defaultPredicate(String query) {
// Adapt the capacity of this list when adding more default predicates.
List<Predicate<AccountGroup>> preds = Lists.newArrayListWithCapacity(5);
preds.add(uuid(new AccountGroup.UUID(query)));
preds.add(name(query));
preds.add(inname(query));
if (!Strings.isNullOrEmpty(query)) {
preds.add(description(query));
}
preds.add(owner(query));
return Predicate.or(preds);
}
public static Predicate<AccountGroup> uuid(AccountGroup.UUID uuid) {
return new GroupPredicate(GroupField.UUID,
GroupQueryBuilder.FIELD_UUID, uuid.get());

View File

@@ -83,6 +83,11 @@ public class GroupQueryBuilder extends QueryBuilder<AccountGroup> {
throw error("Invalid query");
}
@Override
protected Predicate<AccountGroup> defaultField(String query) {
return GroupPredicates.defaultPredicate(query);
}
@Operator
public Predicate<AccountGroup> limit(String query)
throws QueryParseException {
@@ -92,4 +97,5 @@ public class GroupQueryBuilder extends QueryBuilder<AccountGroup> {
}
return new LimitPredicate<>(FIELD_LIMIT, limit);
}
}