package net.sourceforge.pain.tinylib.data.affect;
import net.sourceforge.pain.data.*;
import net.sourceforge.pain.db.*;
import net.sourceforge.pain.tinylib.data.type.*;
/**
* User: fmike Date: May 8, 2004 Time: 1:24:26 AM
*/
public final class FrozenAccountAffectData extends AffectData {
private static int REASON = LAST_BASE_FIELD_INDEX + 1;
private static int FREEZE_DATE = LAST_BASE_FIELD_INDEX + 2;
private static int ADMIN_NAME = LAST_BASE_FIELD_INDEX + 3;
protected static int NFIELDS = LAST_BASE_FIELD_INDEX + 4;
public FrozenAccountAffectData() {
}
public FrozenAccountAffectData(PainDB db, String adminName, Player victim, String reason, Class aClass, int typeId) throws Exception {
super(db, victim, aClass, typeId);
setReason(reason);
setFreezeDate(System.currentTimeMillis());
setAdminName(adminName);
}
protected DbClassSchema provideSchema() {
byte types[] = new byte[NFIELDS];
String names[] = new String[NFIELDS];
fillSuperSchema(types, names);
types[REASON] = DbType.STRING;
names[REASON] = "reason";
types[FREEZE_DATE] = DbType.LONG;
names[FREEZE_DATE] = "freeze_date";
types[ADMIN_NAME] = DbType.STRING;
names[ADMIN_NAME] = "admin_name";
return new DbClassSchema(types, names);
}
public void setReason(String reason) {
setString(REASON, reason);
}
public String getReason() {
return getString(REASON);
}
private void setAdminName(String name) {
setString(ADMIN_NAME, name);
}
public String getAdminName() {
return getString(ADMIN_NAME);
}
private void setFreezeDate(long time) {
setLong(FREEZE_DATE, time);
}
/**
* date-time in millis
*/
public long getFreezeDate() {
return getLong(FREEZE_DATE);
}
}