AccountTotalVote.java

  1. /*
  2.  * @copyright defined in LICENSE.txt
  3.  */

  4. package hera.api.model;

  5. import static hera.util.ValidationUtils.assertNotNull;
  6. import static java.util.Collections.emptyList;
  7. import static java.util.Collections.unmodifiableList;

  8. import hera.annotation.ApiAudience;
  9. import hera.annotation.ApiStability;
  10. import java.util.List;
  11. import lombok.Builder;
  12. import lombok.Builder.Default;
  13. import lombok.NonNull;
  14. import lombok.Value;

  15. @ApiAudience.Public
  16. @ApiStability.Unstable
  17. @Value
  18. @Builder(builderMethodName = "newBuilder")
  19. public class AccountTotalVote {

  20.   @NonNull
  21.   @Default
  22.   StakeInfo stakeInfo = StakeInfo.newBuilder().build();

  23.   @NonNull
  24.   @Default
  25.   List<VoteInfo> voteInfos = emptyList();

  26.   AccountTotalVote(final StakeInfo stakeInfo, final List<VoteInfo> voteInfos) {
  27.     assertNotNull(stakeInfo, "Staked amount must not null");
  28.     assertNotNull(voteInfos, "Vote infos must not null");
  29.     this.stakeInfo = stakeInfo;
  30.     this.voteInfos = unmodifiableList(voteInfos);
  31.   }

  32. }