/*
* Created on 13.8.2004
*
* Copyright (C) 2004 Idega hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf. Use is subject to
* license terms.
*/
package com.idega.user.data;
import java.sql.Timestamp;
import java.util.Collection;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import com.idega.data.GenericEntity;
import com.idega.data.IDORelationshipException;
/**
* @author aron
*
* TopNodeGroupBMPBean keeps track of users top group nodes to be
* displayed in group tree
*/
public class TopNodeGroupBMPBean extends GenericEntity implements TopNodeGroup {
public final static String TABLE_NAME = "IC_USER_TOPNODES";
public final static String COLUMN_USER_ID = "USER_ID";
public final static String COLUMN_GROUP_ID = "GROUP_ID";
public final static String COLUMN_LOGIN_DURATION = "LOGIN_DURATION";
public final static String COLUMN_NUMBER_OF_PERMISSIONS = "NUMBER_OF_PERMISSIONS";
public final static String COLUMN_LASTCHANGED = "LAST_CHANGED";
public final static String COLUMN_COMMENT = "TN_COMMENT";
/*
* (non-Javadoc)
*
* @see com.idega.data.GenericEntity#getEntityName()
*/
public String getEntityName() {
return TABLE_NAME;
}
/*
* (non-Javadoc)
*
* @see com.idega.data.GenericEntity#initializeAttributes()
*/
public void initializeAttributes() {
addManyToOneRelationship(COLUMN_USER_ID, User.class);
setAsPrimaryKey(COLUMN_USER_ID, true);
setNullable(COLUMN_USER_ID, false);
addManyToOneRelationship(COLUMN_GROUP_ID, Group.class);
setAsPrimaryKey(COLUMN_GROUP_ID, true);
setNullable(COLUMN_GROUP_ID, false);
addAttribute(COLUMN_LOGIN_DURATION, "Login duration", true, true, String.class);
addAttribute(COLUMN_NUMBER_OF_PERMISSIONS, "Number of permissions", true, true, Integer.class);
addAttribute(COLUMN_LASTCHANGED, "Last changed", true, true, Timestamp.class);
addAttribute(COLUMN_COMMENT, "Comment", true, true, String.class);
}
/*
* (non-Javadoc)
*
* @see com.idega.data.IDOEntityBean#getPrimaryKeyClass()
*/
public Class getPrimaryKeyClass() {
return TopNodeGroupKey.class;
}
public Object ejbFindByPrimaryKey(TopNodeGroupKey primaryKey) throws FinderException {
return super.ejbFindByPrimaryKey(primaryKey);
}
protected boolean doInsertInCreate() {
return true;
}
public Object ejbCreate(TopNodeGroupKey primaryKey) throws CreateException {
setPrimaryKey(primaryKey);
return super.ejbCreate();
}
public Object ejbCreate(Integer userID, Integer groupID) throws CreateException {
TopNodeGroupKey primaryKey = new TopNodeGroupKey(userID, groupID);
setPrimaryKey(primaryKey);
return super.ejbCreate();
}
public Integer getUserId() {
return getIntegerColumnValue(COLUMN_USER_ID);
}
public void setUserId(Integer id) {
setColumn(COLUMN_USER_ID, id);
}
public Integer getGroupId() {
return getIntegerColumnValue(COLUMN_GROUP_ID);
}
public void setGroupId(Integer id) {
setColumn(COLUMN_GROUP_ID, id);
}
public Timestamp getLastChanged() {
return getTimestampColumnValue(COLUMN_LASTCHANGED);
}
public void setLastChanged(Timestamp stamp) {
setColumn(COLUMN_LASTCHANGED, stamp);
}
public String getComment() {
return getStringColumnValue(COLUMN_COMMENT);
}
public void setComment(String comment) {
setColumn(COLUMN_COMMENT, comment);
}
public String getLoginDuration() {
return getStringColumnValue(COLUMN_LOGIN_DURATION);
}
public void setLoginDuration(String login_duration) {
setColumn(COLUMN_LOGIN_DURATION, login_duration);
}
public void setNumberOfPermissions(Integer number_of_permissions) {
setColumn(COLUMN_NUMBER_OF_PERMISSIONS, number_of_permissions);
}
public Integer getNumberOfPermissions() {
return getIntegerColumnValue(COLUMN_NUMBER_OF_PERMISSIONS);
}
public Collection ejbFindByUser(Integer userID) throws FinderException {
return super.idoFindPKsByQuery(idoQueryGetSelect().appendWhereEquals(COLUMN_USER_ID, userID));
}
public Collection ejbFindByUser(User user) throws FinderException {
return super.idoFindPKsByQuery(idoQueryGetSelect().appendWhereEquals(COLUMN_USER_ID, (Integer) user.getPrimaryKey()));
}
public Collection ejbFindByGroup(Integer groupID) throws FinderException {
return super.idoFindPKsByQuery(idoQueryGetSelect().appendWhereEquals(COLUMN_GROUP_ID, groupID));
}
public Collection ejbHomegetTopNodeGroups(User user) throws IDORelationshipException {
String sql = "Select gr.* from ic_group gr," + TABLE_NAME + " tn where gr.ic_group_id = tn." + COLUMN_GROUP_ID + " and tn." + COLUMN_USER_ID + " = " + user.getPrimaryKey().toString();
return super.idoGetRelatedEntitiesBySQL(Group.class, sql);
}
}