1 package au.gov.amsa.ais.router.model; 2 3 public final class User { 4 5 private final String username; 6 private final String passwordHash; 7 private final String passwordSalt; 8 9 private User(String username, String passwordHash, String passwordSalt) { 10 Util.verifyNotBlank("username", username); 11 Util.verifyNotBlank("passwordHash", passwordHash); 12 Util.verifyNotBlank("passwordSalt", passwordSalt); 13 this.username = username; 14 this.passwordHash = passwordHash; 15 this.passwordSalt = passwordSalt; 16 } 17 18 public String getUsername() { 19 return username; 20 } 21 22 public String getPasswordHash() { 23 return passwordHash; 24 } 25 26 public String getPasswordSalt() { 27 return passwordSalt; 28 } 29 30 public static Builder builder() { 31 return new Builder(); 32 } 33 34 public static class Builder { 35 36 private String username; 37 private String passwordHash; 38 private String passwordSalt; 39 40 private Builder() { 41 } 42 43 public Builder username(String username) { 44 this.username = username; 45 return this; 46 } 47 48 public Builder passwordHash(String passwordHash) { 49 this.passwordHash = passwordHash; 50 return this; 51 } 52 53 public Builder passwordSalt(String passwordSalt) { 54 this.passwordSalt = passwordSalt; 55 return this; 56 } 57 58 public User build() { 59 return new User(username, passwordHash, passwordSalt); 60 } 61 } 62 }