package is.idega.idegaweb.marathon.webservice.data;
import java.sql.Timestamp;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.data.GenericEntity;
import com.idega.data.query.Column;
import com.idega.data.query.MatchCriteria;
import com.idega.data.query.OR;
import com.idega.data.query.SelectQuery;
import com.idega.data.query.Table;
import com.idega.data.query.WildCardColumn;
import com.idega.user.data.User;
public class WebServiceLoginSessionBMPBean extends GenericEntity implements
WebServiceLoginSession {
public final static String ENTITY_NAME = "ibr_ws_session";
public final static String COLUMN_USER = "ic_user_id";
public final static String COLUMN_CREATED = "created";
public final static String COLUMN_LAST_ACCESS = "last_access";
public final static String COLUMN_IS_CLOSED = "is_closed";
public String getEntityName() {
return ENTITY_NAME;
}
public void initializeAttributes() {
addAttribute(getIDColumnName());
addManyToOneRelationship(COLUMN_USER, User.class);
addUniqueIDColumn();
addAttribute(COLUMN_CREATED, "created", Timestamp.class);
addAttribute(COLUMN_LAST_ACCESS, "last access", Timestamp.class);
addAttribute(COLUMN_IS_CLOSED, "is closed", Boolean.class);
}
// getters
public User getUser() {
return (User) getColumnValue(COLUMN_USER);
}
public Timestamp getCreated() {
return getTimestampColumnValue(COLUMN_CREATED);
}
public Timestamp getLastAccess() {
return getTimestampColumnValue(COLUMN_LAST_ACCESS);
}
public boolean getIsClosed() {
return getBooleanColumnValue(COLUMN_IS_CLOSED, false);
}
// setters
public void setUser(User user) {
setColumn(COLUMN_USER, user);
}
public void setCreated(Timestamp created) {
setColumn(COLUMN_CREATED, created);
}
public void setLastAccess(Timestamp lastAccess) {
setColumn(COLUMN_LAST_ACCESS, lastAccess);
}
public void setIsClosed(boolean isClosed) {
setColumn(COLUMN_IS_CLOSED, isClosed);
}
// ejb
public Collection ejbFindAllByUser(User user) throws FinderException {
Table table = new Table(this);
SelectQuery query = new SelectQuery(table);
query.addColumn(new WildCardColumn(table));
query.addCriteria(new MatchCriteria(new Column(table, COLUMN_USER),
MatchCriteria.EQUALS, user));
query.addCriteria(new OR(new MatchCriteria(new Column(table,
COLUMN_IS_CLOSED), MatchCriteria.IS, MatchCriteria.NULL),
new MatchCriteria(new Column(table, COLUMN_IS_CLOSED),
MatchCriteria.EQUALS, false)));
// System.out.println("query = " + query.toString());
return this.idoFindPKsByQuery(query);
}
public Object ejbFindByUniqueID(String id) throws FinderException {
return idoFindOnePKByUniqueId(id);
}
}