/*
* Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com>
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: generic.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.authentication.remembermanagers.databasedrivers;
import com.uwyn.rife.authentication.exceptions.RememberManagerException;
import com.uwyn.rife.authentication.remembermanagers.DatabaseRemember;
import com.uwyn.rife.config.RifeConfig;
import com.uwyn.rife.database.Datasource;
import com.uwyn.rife.database.queries.CreateTable;
import com.uwyn.rife.database.queries.Delete;
import com.uwyn.rife.database.queries.DropTable;
import com.uwyn.rife.database.queries.Insert;
import com.uwyn.rife.database.queries.Select;
public class generic extends DatabaseRemember
{
protected CreateTable mCreateRemember = null;
protected String mCreateRememberMomentIndex = null;
protected DropTable mRemoveRemember = null;
protected String mRemoveRememberMomentIndex = null;
protected Insert mCreateRememberId = null;
protected Delete mEraseRememberId = null;
protected Delete mEraseUserRememberIds = null;
protected Delete mEraseAllRememberIds = null;
protected Select mGetRememberedUserId = null;
protected Delete mPurgeRememberIds = null;
public generic(Datasource datasource)
{
super(datasource);
mCreateRemember = new CreateTable(getDatasource())
.table(RifeConfig.Authentication.getTableRemember())
.column("rememberId", String.class, 32, CreateTable.NOTNULL)
.column("userId", long.class, CreateTable.NOTNULL)
.column("moment", long.class, CreateTable.NOTNULL)
.primaryKey(RifeConfig.Authentication.getTableRemember().toUpperCase()+"_PK", "rememberId");
mCreateRememberMomentIndex = "CREATE INDEX "+RifeConfig.Authentication.getTableRemember()+"_moment_IDX ON "+RifeConfig.Authentication.getTableRemember()+" (moment)";
mRemoveRemember = new DropTable(getDatasource())
.table(mCreateRemember.getTable());
mRemoveRememberMomentIndex = "DROP INDEX "+RifeConfig.Authentication.getTableRemember()+"_moment_IDX";
mCreateRememberId = new Insert(getDatasource())
.into(mCreateRemember.getTable())
.fieldParameter("rememberId")
.fieldParameter("userId")
.fieldParameter("moment");
mEraseRememberId = new Delete(getDatasource())
.from(mCreateRemember.getTable())
.whereParameter("rememberId", "=");
mEraseUserRememberIds = new Delete(getDatasource())
.from(mCreateRemember.getTable())
.whereParameter("userId", "=");
mEraseAllRememberIds = new Delete(getDatasource())
.from(mCreateRemember.getTable());
mGetRememberedUserId = new Select(getDatasource())
.field("userId")
.from(mCreateRemember.getTable())
.whereParameter("rememberId", "=");
mPurgeRememberIds = new Delete(getDatasource())
.from(mCreateRemember.getTable())
.whereParameter("moment", "<=");
}
public boolean install()
throws RememberManagerException
{
return _install(mCreateRemember, mCreateRememberMomentIndex);
}
public boolean remove()
throws RememberManagerException
{
return _remove(mRemoveRemember, mRemoveRememberMomentIndex);
}
public String createRememberId(long userId, String hostIp)
throws RememberManagerException
{
return _createRememberId(mCreateRememberId, userId, hostIp);
}
public boolean eraseRememberId(String rememberId)
throws RememberManagerException
{
return _eraseRememberId(mEraseRememberId, rememberId);
}
public boolean eraseUserRememberIds(long userId)
throws RememberManagerException
{
return _eraseUserRememberIds(mEraseUserRememberIds, userId);
}
public void eraseAllRememberIds()
throws RememberManagerException
{
_eraseAllRememberIds(mEraseAllRememberIds);
}
public long getRememberedUserId(String rememberId)
throws RememberManagerException
{
return _getRememberedUserId(mGetRememberedUserId, rememberId);
}
public void purgeRememberIds()
throws RememberManagerException
{
_purgeRememberIds(mPurgeRememberIds);
}
}