package de.vanitasvitae.fasel.db.entity; import com.j256.ormlite.field.DataType; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; import de.vanitasvitae.fasel.db.dao.impl.AccountDaoImpl; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; @EqualsAndHashCode @DatabaseTable(tableName = "accounts", daoClass = AccountDaoImpl.class) public class Account { public static final String ACCOUNT_ID = "accountID"; public static final String SERVICE_ADDRESS = "serviceAddress"; public static final String USERNAME = "username"; public static final String PASSWORD = "password"; public static final String ENTITY = "entity"; public static final String ENABLED = "enabled"; @Getter @DatabaseField(generatedId = true, columnName = ACCOUNT_ID, dataType = DataType.LONG) private long accountId; @Getter @Setter @DatabaseField(canBeNull = false, columnName = SERVICE_ADDRESS, uniqueCombo = true, dataType = DataType.STRING) private String serviceAddress; @Getter @Setter @DatabaseField(canBeNull = false, columnName = USERNAME, uniqueCombo = true, dataType = DataType.STRING) private String username; @Getter @Setter @DatabaseField(columnName = PASSWORD, dataType = DataType.STRING) private String password; @Getter @Setter @DatabaseField(foreign = true, columnName = ENTITY, canBeNull = false, foreignAutoCreate = true, foreignAutoRefresh = true) private XmppEntity baseEntity; @Getter @Setter @DatabaseField(canBeNull = false, columnName = ENABLED, defaultValue = "false", dataType = DataType.BOOLEAN) private boolean enabled; /** * Empty account for ORMLite. */ public Account() { } public Account(String username, String service, String password) { this.username = username; this.serviceAddress = service; this.password = password; this.baseEntity = new XmppEntity(username + "@" + service); } @Override public String toString() { return "Account[" + accountId + ", " + serviceAddress + ", " + username + ", " + password + ", " + baseEntity + ", " + enabled + "]"; } }