package io.github.lucaseasedup.logit.account; import com.google.common.collect.ImmutableList; import io.github.lucaseasedup.logit.storage.DataType; import io.github.lucaseasedup.logit.storage.UnitKeys; import java.util.List; import org.apache.commons.lang.StringUtils; public final class AccountKeys extends UnitKeys { public AccountKeys( String username, String uuid, String salt, String password, String hashing_algorithm, String ip, String login_session, String email, String last_active_date, String reg_date, String is_locked, String login_history, String display_name, String persistence ) { if (StringUtils.isBlank(username) || StringUtils.isBlank(uuid) || StringUtils.isBlank(salt) || StringUtils.isBlank(password) || StringUtils.isBlank(hashing_algorithm) || StringUtils.isBlank(ip) || StringUtils.isBlank(login_session) || StringUtils.isBlank(email) || StringUtils.isBlank(last_active_date) || StringUtils.isBlank(reg_date) || StringUtils.isBlank(is_locked) || StringUtils.isBlank(login_history) || StringUtils.isBlank(display_name) || StringUtils.isBlank(persistence)) { throw new IllegalArgumentException(); } put(username, DataType.TINYTEXT); put(uuid, DataType.TINYTEXT); put(salt, DataType.TINYTEXT); put(password, DataType.MEDIUMTEXT); put(hashing_algorithm, DataType.TINYTEXT); put(ip, DataType.TINYTEXT); put(login_session, DataType.TINYTEXT); put(email, DataType.TINYTEXT); put(last_active_date, DataType.INTEGER); put(reg_date, DataType.INTEGER); put(is_locked, DataType.INTEGER); put(login_history, DataType.LONGTEXT); put(display_name, DataType.TINYTEXT); put(persistence, DataType.TEXT); this.names = new ImmutableList.Builder<String>().add( username, uuid, salt, password, hashing_algorithm, ip, login_session, email, last_active_date, reg_date, is_locked, login_history, display_name, persistence).build(); this.username = username; this.uuid = uuid; this.salt = salt; this.password = password; this.hashing_algorithm = hashing_algorithm; this.ip = ip; this.login_session = login_session; this.email = email; this.last_active_date = last_active_date; this.reg_date = reg_date; this.is_locked = is_locked; this.login_history = login_history; this.display_name = display_name; this.persistence = persistence; } public String username() { return username; } public String uuid() { return uuid; } public String salt() { return salt; } public String password() { return password; } public String hashing_algorithm() { return hashing_algorithm; } public String ip() { return ip; } public String login_session() { return login_session; } public String email() { return email; } public String last_active_date() { return last_active_date; } public String reg_date() { return reg_date; } public String is_locked() { return is_locked; } public String login_history() { return login_history; } public String display_name() { return display_name; } public String persistence() { return persistence; } public List<String> getNames() { return names; } public static final AccountKeys DEFAULT = new AccountKeys( "username", "uuid", "salt", "password", "hashing_algorithm", "ip", "login_session", "email", "last_active_date", "reg_date", "is_locked", "login_history", "display_name", "persistence" ); private static final long serialVersionUID = 1L; private final List<String> names; private final String username; private final String uuid; private final String salt; private final String password; private final String hashing_algorithm; private final String ip; private final String login_session; private final String email; private final String last_active_date; private final String reg_date; private final String is_locked; private final String login_history; private final String display_name; private final String persistence; }