diff --git a/java/com/google/gerrit/server/group/db/InternalGroupUpdate.java b/java/com/google/gerrit/server/group/db/InternalGroupUpdate.java index 55c2ab3228..f9fe4bb015 100644 --- a/java/com/google/gerrit/server/group/db/InternalGroupUpdate.java +++ b/java/com/google/gerrit/server/group/db/InternalGroupUpdate.java @@ -20,11 +20,20 @@ import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.AccountGroup; import java.util.Optional; import java.util.Set; -import java.util.function.Function; // TODO(aliceks): Add Javadoc descriptions to this file. @AutoValue public abstract class InternalGroupUpdate { + @FunctionalInterface + public interface MemberModification { + Set apply(ImmutableSet in); + } + + @FunctionalInterface + public interface SubgroupModification { + Set apply(ImmutableSet in); + } + public abstract Optional getName(); // TODO(aliceks): Mention empty string (not null!) -> unset value in Javadoc. @@ -34,16 +43,14 @@ public abstract class InternalGroupUpdate { public abstract Optional getVisibleToAll(); - public abstract Function, ? extends Set> - getMemberModification(); + public abstract MemberModification getMemberModification(); - public abstract Function, ? extends Set> - getSubgroupModification(); + public abstract SubgroupModification getSubgroupModification(); public static Builder builder() { return new AutoValue_InternalGroupUpdate.Builder() - .setMemberModification(Function.identity()) - .setSubgroupModification(Function.identity()); + .setMemberModification(in -> in) + .setSubgroupModification(in -> in); } @AutoValue.Builder @@ -56,12 +63,9 @@ public abstract class InternalGroupUpdate { public abstract Builder setVisibleToAll(boolean visibleToAll); - public abstract Builder setMemberModification( - Function, ? extends Set> memberModification); + public abstract Builder setMemberModification(MemberModification memberModification); - public abstract Builder setSubgroupModification( - Function, ? extends Set> - subgroupModification); + public abstract Builder setSubgroupModification(SubgroupModification subgroupModification); public abstract InternalGroupUpdate build(); }