Class GroupDelta

java.lang.Object
com.google.gerrit.server.group.db.GroupDelta

public abstract class GroupDelta extends Object
Data holder for updates to be applied to a group.

A GroupDelta specifies the modifications to be applied to a group. Only fields set via GroupDelta.Builder will be updated.

  • Constructor Details

    • GroupDelta

      public GroupDelta()
  • Method Details

    • getName

      public abstract Optional<AccountGroup.NameKey> getName()
      Defines the new name of the group. If not specified, the name remains unchanged.
    • getDescription

      public abstract Optional<String> getDescription()
      Defines the new description of the group. If not specified, the description remains unchanged.

      Note: Passing the empty string unsets the description.

    • getOwnerGroupUUID

      public abstract Optional<AccountGroup.UUID> getOwnerGroupUUID()
      Defines the new owner of the group. If not specified, the owner remains unchanged.
    • getVisibleToAll

      public abstract Optional<Boolean> getVisibleToAll()
      Defines the new state of the 'visibleToAll' flag of the group. If not specified, the flag remains unchanged.
    • getMemberModification

      public abstract GroupDelta.MemberModification getMemberModification()
      Defines how the members of the group should be modified. By default (that is if nothing is specified), the members remain unchanged.
      Returns:
      a GroupDelta.MemberModification which gets the current members of the group as input and outputs the desired resulting members
    • getSubgroupModification

      public abstract GroupDelta.SubgroupModification getSubgroupModification()
      Defines how the subgroups of the group should be modified. By default (that is if nothing is specified), the subgroups remain unchanged.
      Returns:
      a GroupDelta.SubgroupModification which gets the current subgroups of the group as input and outputs the desired resulting subgroups
    • getUpdatedOn

      public abstract Optional<Instant> getUpdatedOn()
      Defines the Timestamp to be used for the NoteDb commits of the update. If not specified, the current Timestamp when creating the commit will be used.

      If this GroupDelta is passed next to an InternalGroupCreation during a group creation, this Timestamp is used for the NoteDb commits of the new group. Hence, the InternalGroup#getCreatedOn() field will match this Timestamp.

      Note: Timestamps of NoteDb commits for groups are used for events in the audit log. For this reason, specifying this field will have an effect on the resulting audit log.

    • toBuilder

      public abstract GroupDelta.Builder toBuilder()
    • builder

      public static GroupDelta.Builder builder()