package io.shockah.skylark.factoids.db;
import io.shockah.skylark.UnexpectedException;
import io.shockah.skylark.db.DatabaseManager;
import io.shockah.skylark.db.DbObject;
import io.shockah.skylark.ident.IdentMethod;
import java.sql.SQLException;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
@DatabaseTable(tableName = "io_shockah_skylark_factoids_factoidident")
public class FactoidIdent extends DbObject<FactoidIdent> {
public static final String FACTOID_COLUMN = "factoid_id";
@DatabaseField(canBeNull = false)
public String prefix;
@DatabaseField(canBeNull = false)
public String account;
@DatabaseField(foreign = true, canBeNull = false, columnName = FACTOID_COLUMN)
private Factoid factoid;
@Deprecated //ORMLite-only
protected FactoidIdent() {
}
public FactoidIdent(Dao<FactoidIdent, Integer> dao) {
super(dao);
}
public static FactoidIdent createOf(DatabaseManager manager, Factoid factoid, IdentMethod ident, String account) {
return manager.create(FactoidIdent.class, factoidIdent -> {
factoidIdent.factoid = factoid;
factoidIdent.prefix = ident.prefix;
factoidIdent.account = account;
});
}
public Factoid getFactoid() {
try {
if (factoid != null)
factoid.refresh();
return factoid;
} catch (SQLException e) {
throw new UnexpectedException(e);
}
}
public void setFactoid(Factoid factoid) {
this.factoid = factoid;
}
}