Fasel/fasel-jfx/src/main/java/de/vanitasvitae/fasel/db/entity/Account.java

70 lines
2.2 KiB
Java

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 + "]";
}
}