package ch.elexis.data.po;
import ch.elexis.data.PersistentObject;
public class PersistentObjectImpl extends PersistentObject {
private static final String TABLENAME = "PERSISTENT_OBJECT_IMPL";
public static final String FLD_TEST = "Test";
public static final String FLD_JOINT_OTHER = "OtherJoint";
public static final String FLD_LIST_OTHER = "OtherList";
private static final String create =
"CREATE TABLE " + TABLENAME + " (" + "ID VARCHAR(25) primary key, " + "lastupdate BIGINT,"
+ "deleted CHAR(1) default '0'," + FLD_TEST + " VARCHAR(255) );";
private static final String createJoint =
"CREATE TABLE PO_OTHER_JOINT(ID VARCHAR(25), PersistentObjectId VARCHAR(25),OtherId VARCHAR(25),PRIMARY KEY (PersistentObjectId, OtherId));";
static {
addMapping(TABLENAME, FLD_TEST,
FLD_JOINT_OTHER + "=JOINT:PersistentObjectId:OtherId:PO_OTHER_JOINT",
FLD_LIST_OTHER + "=LIST:PersistentObjectId:OTHERLIST");
initTable();
}
public static void initTable(){
if (!tableExists(TABLENAME)) {
createOrModifyTable(create);
createOrModifyTable(createJoint);
}
}
public PersistentObjectImpl(boolean create){
if (create) {
create(null);
}
}
public PersistentObjectImpl(){
this(true);
}
public String getTestGet(){
return get(FLD_TEST);
}
@Override
public String getLabel(){
return this.toString();
}
@Override
protected String getTableName(){
return TABLENAME;
}
/**
* @see PersistentObject#getHighestLastUpdate(String)
*/
public static long getHighestLastUpdate(){
return PersistentObject.getHighestLastUpdate(TABLENAME);
}
}