Move change status parsing into ChangeStatusPredicate
Change-Id: I9ad4156bc24644f9b249f8a87b19b189c6a15f2e
This commit is contained in:
@@ -276,17 +276,10 @@ public class ChangeQueryBuilder extends QueryBuilder<ChangeData> {
|
||||
|
||||
@Operator
|
||||
public Predicate<ChangeData> status(String statusName) {
|
||||
if ("open".equals(statusName) || "pending".equals(statusName)) {
|
||||
return status_open();
|
||||
|
||||
} else if ("closed".equals(statusName)) {
|
||||
return ChangeStatusPredicate.closed();
|
||||
|
||||
} else if ("reviewed".equalsIgnoreCase(statusName)) {
|
||||
if ("reviewed".equalsIgnoreCase(statusName)) {
|
||||
return new IsReviewedPredicate();
|
||||
|
||||
} else {
|
||||
return new ChangeStatusPredicate(statusName);
|
||||
return ChangeStatusPredicate.parse(statusName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,18 @@ public final class ChangeStatusPredicate extends IndexPredicate<ChangeData> {
|
||||
VALUES = values.build();
|
||||
}
|
||||
|
||||
public static Predicate<ChangeData> parse(String value) {
|
||||
if ("open".equals(value) || "pending".equals(value)) {
|
||||
return open();
|
||||
} else if ("closed".equals(value)) {
|
||||
return closed();
|
||||
} else {
|
||||
Change.Status status = VALUES.inverse().get(value);
|
||||
checkArgument(status != null, "invalid change status: %s", value);
|
||||
return new ChangeStatusPredicate(status);
|
||||
}
|
||||
}
|
||||
|
||||
public static Predicate<ChangeData> open() {
|
||||
List<Predicate<ChangeData>> r = new ArrayList<>(4);
|
||||
for (final Change.Status e : Change.Status.values()) {
|
||||
@@ -68,12 +80,6 @@ public final class ChangeStatusPredicate extends IndexPredicate<ChangeData> {
|
||||
|
||||
private final Change.Status status;
|
||||
|
||||
ChangeStatusPredicate(String value) {
|
||||
super(ChangeField.STATUS, value);
|
||||
status = VALUES.inverse().get(value);
|
||||
checkArgument(status != null, "invalid change status: %s", value);
|
||||
}
|
||||
|
||||
ChangeStatusPredicate(Change.Status status) {
|
||||
super(ChangeField.STATUS, VALUES.get(status));
|
||||
this.status = status;
|
||||
|
||||
Reference in New Issue
Block a user