InternalGroupUpdate: Use named types for modification functions
This saves significant boilerplate in callers that need to store/return values of these types. There are none yet; all callers use lambdas, so don't need to be converted. Change-Id: Ieae57be795a521a22353efc67e059774b823c7d9
This commit is contained in:
@@ -20,11 +20,20 @@ import com.google.gerrit.reviewdb.client.Account;
|
|||||||
import com.google.gerrit.reviewdb.client.AccountGroup;
|
import com.google.gerrit.reviewdb.client.AccountGroup;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
// TODO(aliceks): Add Javadoc descriptions to this file.
|
// TODO(aliceks): Add Javadoc descriptions to this file.
|
||||||
@AutoValue
|
@AutoValue
|
||||||
public abstract class InternalGroupUpdate {
|
public abstract class InternalGroupUpdate {
|
||||||
|
@FunctionalInterface
|
||||||
|
public interface MemberModification {
|
||||||
|
Set<Account.Id> apply(ImmutableSet<Account.Id> in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@FunctionalInterface
|
||||||
|
public interface SubgroupModification {
|
||||||
|
Set<AccountGroup.UUID> apply(ImmutableSet<AccountGroup.UUID> in);
|
||||||
|
}
|
||||||
|
|
||||||
public abstract Optional<AccountGroup.NameKey> getName();
|
public abstract Optional<AccountGroup.NameKey> getName();
|
||||||
|
|
||||||
// TODO(aliceks): Mention empty string (not null!) -> unset value in Javadoc.
|
// TODO(aliceks): Mention empty string (not null!) -> unset value in Javadoc.
|
||||||
@@ -34,16 +43,14 @@ public abstract class InternalGroupUpdate {
|
|||||||
|
|
||||||
public abstract Optional<Boolean> getVisibleToAll();
|
public abstract Optional<Boolean> getVisibleToAll();
|
||||||
|
|
||||||
public abstract Function<ImmutableSet<Account.Id>, ? extends Set<Account.Id>>
|
public abstract MemberModification getMemberModification();
|
||||||
getMemberModification();
|
|
||||||
|
|
||||||
public abstract Function<ImmutableSet<AccountGroup.UUID>, ? extends Set<AccountGroup.UUID>>
|
public abstract SubgroupModification getSubgroupModification();
|
||||||
getSubgroupModification();
|
|
||||||
|
|
||||||
public static Builder builder() {
|
public static Builder builder() {
|
||||||
return new AutoValue_InternalGroupUpdate.Builder()
|
return new AutoValue_InternalGroupUpdate.Builder()
|
||||||
.setMemberModification(Function.identity())
|
.setMemberModification(in -> in)
|
||||||
.setSubgroupModification(Function.identity());
|
.setSubgroupModification(in -> in);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AutoValue.Builder
|
@AutoValue.Builder
|
||||||
@@ -56,12 +63,9 @@ public abstract class InternalGroupUpdate {
|
|||||||
|
|
||||||
public abstract Builder setVisibleToAll(boolean visibleToAll);
|
public abstract Builder setVisibleToAll(boolean visibleToAll);
|
||||||
|
|
||||||
public abstract Builder setMemberModification(
|
public abstract Builder setMemberModification(MemberModification memberModification);
|
||||||
Function<ImmutableSet<Account.Id>, ? extends Set<Account.Id>> memberModification);
|
|
||||||
|
|
||||||
public abstract Builder setSubgroupModification(
|
public abstract Builder setSubgroupModification(SubgroupModification subgroupModification);
|
||||||
Function<ImmutableSet<AccountGroup.UUID>, ? extends Set<AccountGroup.UUID>>
|
|
||||||
subgroupModification);
|
|
||||||
|
|
||||||
public abstract InternalGroupUpdate build();
|
public abstract InternalGroupUpdate build();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user