Flatten group audit keys into containing types
The keys were used as primary keys in ReviewDb; this is no longer required, and the key abstraction is serving no purpose. Within AuditLogReader there is a need to build maps containing audit records keyed by something, but AuditLogReader has its own key types for that, since they don't match the audit record keys. Change-Id: I2632cbf709cab020a0d9a44d177ad6e326e21bcf
This commit is contained in:
		@@ -21,29 +21,20 @@ import java.util.Optional;
 | 
			
		||||
/** Inclusion of an {@link AccountGroup} in another {@link AccountGroup}. */
 | 
			
		||||
@AutoValue
 | 
			
		||||
public abstract class AccountGroupByIdAudit {
 | 
			
		||||
  public static Key key(AccountGroup.Id groupId, AccountGroup.UUID includeUuid, Timestamp addedOn) {
 | 
			
		||||
    return new AutoValue_AccountGroupByIdAudit_Key(groupId, includeUuid, addedOn);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @AutoValue
 | 
			
		||||
  public abstract static class Key {
 | 
			
		||||
    public abstract AccountGroup.Id groupId();
 | 
			
		||||
 | 
			
		||||
    public abstract AccountGroup.UUID includeUuid();
 | 
			
		||||
 | 
			
		||||
    public abstract Timestamp addedOn();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public static Builder builder() {
 | 
			
		||||
    return new AutoValue_AccountGroupByIdAudit.Builder();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @AutoValue.Builder
 | 
			
		||||
  public abstract static class Builder {
 | 
			
		||||
    public abstract Builder key(Key key);
 | 
			
		||||
    public abstract Builder groupId(AccountGroup.Id groupId);
 | 
			
		||||
 | 
			
		||||
    public abstract Builder includeUuid(AccountGroup.UUID includeUuid);
 | 
			
		||||
 | 
			
		||||
    public abstract Builder addedBy(Account.Id addedBy);
 | 
			
		||||
 | 
			
		||||
    public abstract Builder addedOn(Timestamp addedOn);
 | 
			
		||||
 | 
			
		||||
    abstract Builder removedBy(Account.Id removedBy);
 | 
			
		||||
 | 
			
		||||
    abstract Builder removedOn(Timestamp removedOn);
 | 
			
		||||
@@ -55,28 +46,20 @@ public abstract class AccountGroupByIdAudit {
 | 
			
		||||
    public abstract AccountGroupByIdAudit build();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public abstract AccountGroupByIdAudit.Key key();
 | 
			
		||||
  public abstract AccountGroup.Id groupId();
 | 
			
		||||
 | 
			
		||||
  public abstract AccountGroup.UUID includeUuid();
 | 
			
		||||
 | 
			
		||||
  public abstract Account.Id addedBy();
 | 
			
		||||
 | 
			
		||||
  public abstract Timestamp addedOn();
 | 
			
		||||
 | 
			
		||||
  public abstract Optional<Account.Id> removedBy();
 | 
			
		||||
 | 
			
		||||
  public abstract Optional<Timestamp> removedOn();
 | 
			
		||||
 | 
			
		||||
  public abstract Builder toBuilder();
 | 
			
		||||
 | 
			
		||||
  public AccountGroup.Id groupId() {
 | 
			
		||||
    return key().groupId();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public Timestamp getAddedOn() {
 | 
			
		||||
    return key().addedOn();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public AccountGroup.UUID includeUuid() {
 | 
			
		||||
    return key().includeUuid();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public boolean isActive() {
 | 
			
		||||
    return !removedOn().isPresent();
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -21,33 +21,24 @@ import java.util.Optional;
 | 
			
		||||
/** Membership of an {@link Account} in an {@link AccountGroup}. */
 | 
			
		||||
@AutoValue
 | 
			
		||||
public abstract class AccountGroupMemberAudit {
 | 
			
		||||
  public static Key key(Account.Id accountId, AccountGroup.Id groupId, Timestamp addedOn) {
 | 
			
		||||
    return new AutoValue_AccountGroupMemberAudit_Key(accountId, groupId, addedOn);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @AutoValue
 | 
			
		||||
  public abstract static class Key {
 | 
			
		||||
    public abstract Account.Id accountId();
 | 
			
		||||
 | 
			
		||||
    public abstract AccountGroup.Id groupId();
 | 
			
		||||
 | 
			
		||||
    public abstract Timestamp addedOn();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public static Builder builder() {
 | 
			
		||||
    return new AutoValue_AccountGroupMemberAudit.Builder();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @AutoValue.Builder
 | 
			
		||||
  public abstract static class Builder {
 | 
			
		||||
    public abstract Builder key(Key key);
 | 
			
		||||
    public abstract Builder groupId(AccountGroup.Id groupId);
 | 
			
		||||
 | 
			
		||||
    abstract Key key();
 | 
			
		||||
    public abstract Builder memberId(Account.Id accountId);
 | 
			
		||||
 | 
			
		||||
    public abstract Builder addedBy(Account.Id addedBy);
 | 
			
		||||
 | 
			
		||||
    abstract Account.Id addedBy();
 | 
			
		||||
 | 
			
		||||
    public abstract Builder addedOn(Timestamp addedOn);
 | 
			
		||||
 | 
			
		||||
    abstract Timestamp addedOn();
 | 
			
		||||
 | 
			
		||||
    abstract Builder removedBy(Account.Id removedBy);
 | 
			
		||||
 | 
			
		||||
    abstract Builder removedOn(Timestamp removedOn);
 | 
			
		||||
@@ -57,34 +48,26 @@ public abstract class AccountGroupMemberAudit {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Builder removedLegacy() {
 | 
			
		||||
      return removed(addedBy(), key().addedOn());
 | 
			
		||||
      return removed(addedBy(), addedOn());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public abstract AccountGroupMemberAudit build();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public abstract AccountGroupMemberAudit.Key key();
 | 
			
		||||
  public abstract AccountGroup.Id groupId();
 | 
			
		||||
 | 
			
		||||
  public abstract Account.Id memberId();
 | 
			
		||||
 | 
			
		||||
  public abstract Account.Id addedBy();
 | 
			
		||||
 | 
			
		||||
  public abstract Timestamp addedOn();
 | 
			
		||||
 | 
			
		||||
  public abstract Optional<Account.Id> removedBy();
 | 
			
		||||
 | 
			
		||||
  public abstract Optional<Timestamp> removedOn();
 | 
			
		||||
 | 
			
		||||
  public abstract Builder toBuilder();
 | 
			
		||||
 | 
			
		||||
  public AccountGroup.Id groupId() {
 | 
			
		||||
    return key().groupId();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public Account.Id memberId() {
 | 
			
		||||
    return key().accountId();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public Timestamp addedOn() {
 | 
			
		||||
    return key().addedOn();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public boolean isActive() {
 | 
			
		||||
    return !removedOn().isPresent();
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -79,7 +79,9 @@ public class AuditLogReader {
 | 
			
		||||
        MemberKey key = MemberKey.create(groupId, id);
 | 
			
		||||
        AccountGroupMemberAudit.Builder audit =
 | 
			
		||||
            AccountGroupMemberAudit.builder()
 | 
			
		||||
                .key(AccountGroupMemberAudit.key(id, groupId, pc.when()))
 | 
			
		||||
                .memberId(id)
 | 
			
		||||
                .groupId(groupId)
 | 
			
		||||
                .addedOn(pc.when())
 | 
			
		||||
                .addedBy(pc.authorId());
 | 
			
		||||
        audits.put(key, audit);
 | 
			
		||||
        result.add(audit);
 | 
			
		||||
@@ -93,7 +95,9 @@ public class AuditLogReader {
 | 
			
		||||
          // Match old behavior of DbGroupAuditListener and add a "legacy" add/remove pair.
 | 
			
		||||
          AccountGroupMemberAudit.Builder audit =
 | 
			
		||||
              AccountGroupMemberAudit.builder()
 | 
			
		||||
                  .key(AccountGroupMemberAudit.key(id, groupId, pc.when()))
 | 
			
		||||
                  .groupId(groupId)
 | 
			
		||||
                  .memberId(id)
 | 
			
		||||
                  .addedOn(pc.when())
 | 
			
		||||
                  .addedBy(pc.authorId())
 | 
			
		||||
                  .removedLegacy();
 | 
			
		||||
          result.add(audit);
 | 
			
		||||
@@ -118,7 +122,9 @@ public class AuditLogReader {
 | 
			
		||||
        SubgroupKey key = SubgroupKey.create(groupId, uuid);
 | 
			
		||||
        AccountGroupByIdAudit.Builder audit =
 | 
			
		||||
            AccountGroupByIdAudit.builder()
 | 
			
		||||
                .key(AccountGroupByIdAudit.key(groupId, uuid, pc.when()))
 | 
			
		||||
                .groupId(groupId)
 | 
			
		||||
                .includeUuid(uuid)
 | 
			
		||||
                .addedOn(pc.when())
 | 
			
		||||
                .addedBy(pc.authorId());
 | 
			
		||||
        audits.put(key, audit);
 | 
			
		||||
        result.add(audit);
 | 
			
		||||
 
 | 
			
		||||
@@ -123,7 +123,7 @@ public class GetAuditLog implements RestReadView<GroupResource> {
 | 
			
		||||
 | 
			
		||||
        auditEvents.add(
 | 
			
		||||
            GroupAuditEventInfo.createAddGroupEvent(
 | 
			
		||||
                accountLoader.get(auditEvent.addedBy()), auditEvent.key().addedOn(), member));
 | 
			
		||||
                accountLoader.get(auditEvent.addedBy()), auditEvent.addedOn(), member));
 | 
			
		||||
 | 
			
		||||
        if (!auditEvent.isActive()) {
 | 
			
		||||
          auditEvents.add(
 | 
			
		||||
 
 | 
			
		||||
@@ -304,7 +304,9 @@ public final class AuditLogReaderTest extends AbstractGroupTest {
 | 
			
		||||
  private static AccountGroupMemberAudit createExpMemberAudit(
 | 
			
		||||
      AccountGroup.Id groupId, Account.Id id, Account.Id addedBy, Timestamp addedOn) {
 | 
			
		||||
    return AccountGroupMemberAudit.builder()
 | 
			
		||||
        .key(AccountGroupMemberAudit.key(id, groupId, addedOn))
 | 
			
		||||
        .groupId(groupId)
 | 
			
		||||
        .memberId(id)
 | 
			
		||||
        .addedOn(addedOn)
 | 
			
		||||
        .addedBy(addedBy)
 | 
			
		||||
        .build();
 | 
			
		||||
  }
 | 
			
		||||
@@ -312,7 +314,9 @@ public final class AuditLogReaderTest extends AbstractGroupTest {
 | 
			
		||||
  private static AccountGroupByIdAudit createExpGroupAudit(
 | 
			
		||||
      AccountGroup.Id groupId, AccountGroup.UUID uuid, Account.Id addedBy, Timestamp addedOn) {
 | 
			
		||||
    return AccountGroupByIdAudit.builder()
 | 
			
		||||
        .key(AccountGroupByIdAudit.key(groupId, uuid, addedOn))
 | 
			
		||||
        .groupId(groupId)
 | 
			
		||||
        .includeUuid(uuid)
 | 
			
		||||
        .addedOn(addedOn)
 | 
			
		||||
        .addedBy(addedBy)
 | 
			
		||||
        .build();
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user