Remove unnecessary abstraction of AddReviewers
Abstract class AddReviewers had only one implementation,
AddReviewersByConfiguration. This implementation wasn't configuration
specific, and all this implemetation did was to provide a Factory for
and a Set<Account.Id> of reviewers to the abstract class.
Getting the Set of reviewers from an abstract method has no benefits
to having them provided in the Constructor.
Feature: Issue 12610
Change-Id: I61d24b622f948fa71f85d24b76c315ea5cf477e8
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/AddReviewers.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/AddReviewers.java
index 43266a2..7fe9920 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/AddReviewers.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/AddReviewers.java
@@ -25,30 +25,38 @@
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.util.RequestContext;
import com.google.gerrit.server.util.ThreadLocalRequestContext;
+import com.google.inject.Inject;
+import com.google.inject.assistedinject.Assisted;
import java.util.ArrayList;
import java.util.Set;
-abstract class AddReviewers implements Runnable {
+class AddReviewers implements Runnable {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
private final ThreadLocalRequestContext tl;
- protected final GerritApi gApi;
- protected final IdentifiedUser.GenericFactory identifiedUserFactory;
- protected final ChangeInfo changeInfo;
+ private final GerritApi gApi;
+ private final IdentifiedUser.GenericFactory identifiedUserFactory;
+ private final ChangeInfo changeInfo;
+ private final Set<Account.Id> reviewers;
+ interface Factory {
+ AddReviewers create(ChangeInfo changeInfo, Set<Account.Id> reviewers);
+ }
+
+ @Inject
AddReviewers(
ThreadLocalRequestContext tl,
GerritApi gApi,
IdentifiedUser.GenericFactory identifiedUserFactory,
- ChangeInfo changeInfo) {
+ @Assisted ChangeInfo changeInfo,
+ @Assisted Set<Account.Id> reviewers) {
this.tl = tl;
this.gApi = gApi;
this.identifiedUserFactory = identifiedUserFactory;
this.changeInfo = changeInfo;
+ this.reviewers = reviewers;
}
- abstract Set<Account.Id> getReviewers();
-
@Override
public void run() {
RequestContext old =
@@ -61,13 +69,13 @@
}
});
try {
- addReviewers(getReviewers(), changeInfo);
+ addReviewers();
} finally {
tl.setContext(old);
}
}
- private void addReviewers(Set<Account.Id> reviewers, ChangeInfo changeInfo) {
+ private void addReviewers() {
try {
// TODO(davido): Switch back to using changes API again,
// when it supports batch mode for adding reviewers
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/AddReviewersByConfiguration.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/AddReviewersByConfiguration.java
deleted file mode 100644
index 788629c..0000000
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/AddReviewersByConfiguration.java
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2013 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.googlesource.gerrit.plugins.reviewers;
-
-import com.google.gerrit.entities.Account;
-import com.google.gerrit.extensions.api.GerritApi;
-import com.google.gerrit.extensions.common.ChangeInfo;
-import com.google.gerrit.server.IdentifiedUser;
-import com.google.gerrit.server.util.ThreadLocalRequestContext;
-import com.google.inject.Inject;
-import com.google.inject.assistedinject.Assisted;
-import java.util.Set;
-
-class AddReviewersByConfiguration extends AddReviewers {
- private final Set<Account.Id> reviewers;
-
- interface Factory {
- AddReviewersByConfiguration create(ChangeInfo changeInfo, Set<Account.Id> reviewers);
- }
-
- @Inject
- AddReviewersByConfiguration(
- ThreadLocalRequestContext tl,
- GerritApi gApi,
- IdentifiedUser.GenericFactory identifiedUserFactory,
- @Assisted ChangeInfo changeInfo,
- @Assisted Set<Account.Id> reviewers) {
- super(tl, gApi, identifiedUserFactory, changeInfo);
- this.reviewers = reviewers;
- }
-
- @Override
- Set<Account.Id> getReviewers() {
- return reviewers;
- }
-}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java
index efc3614..5f5b8ae 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java
@@ -67,7 +67,7 @@
DynamicSet.bind(binder(), PrivateStateChangedListener.class).to(Reviewers.class);
}
- factory(AddReviewersByConfiguration.Factory.class);
+ factory(AddReviewers.Factory.class);
if (enableREST) {
install(
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/Reviewers.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/Reviewers.java
index fcf4790..3873eb1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/Reviewers.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/Reviewers.java
@@ -55,7 +55,7 @@
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
private final ReviewersResolver resolver;
- private final AddReviewersByConfiguration.Factory byConfigFactory;
+ private final AddReviewers.Factory addReviewersFactory;
private final WorkQueue workQueue;
private final ReviewersConfig config;
private final Provider<CurrentUser> user;
@@ -65,14 +65,14 @@
@Inject
Reviewers(
ReviewersResolver resolver,
- AddReviewersByConfiguration.Factory byConfigFactory,
+ AddReviewers.Factory addReviewersFactory,
WorkQueue workQueue,
ReviewersConfig config,
Provider<CurrentUser> user,
ChangeQueryBuilder queryBuilder,
Provider<InternalChangeQuery> queryProvider) {
this.resolver = resolver;
- this.byConfigFactory = byConfigFactory;
+ this.addReviewersFactory = addReviewersFactory;
this.workQueue = workQueue;
this.config = config;
this.user = user;
@@ -155,12 +155,12 @@
if (reviewers.isEmpty()) {
return;
}
- final Runnable task =
- byConfigFactory.create(
+ final AddReviewers addReviewers =
+ addReviewersFactory.create(
c, resolver.resolve(reviewers, projectName, changeNumber, uploader));
@SuppressWarnings("unused")
- Future<?> ignored = workQueue.getDefaultQueue().submit(task);
+ Future<?> ignored = workQueue.getDefaultQueue().submit(addReviewers);
} catch (QueryParseException e) {
logger.atWarning().log(
"Could not add default reviewers for change %d of project %s, filter is invalid: %s",