package com.idega.block.dataquery.data; import java.sql.Timestamp; import java.util.Collection; import javax.ejb.FinderException; import com.idega.core.file.data.ICFile; import com.idega.data.GenericEntity; import com.idega.data.IDOQuery; import com.idega.user.data.Group; import com.idega.user.data.User; /** * <p>Title: idegaWeb</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: idega Software</p> * @author <a href="thomas@idega.is">Thomas Hilbig</a> * @version 1.0 * Created on Jan 30, 2004 */ public class UserQueryBMPBean extends GenericEntity implements UserQuery { private static final String ENTITY_NAME = "USER_QUERY"; private static final String COLUMN_NAME_NAME = "NAME"; private static final String COLUMN_NAME_OWNERSHIP = "OWNERSHIP"; private static final String COLUMN_NAME_PERMISSION = "PERMISSION"; private static final String COLUMN_NAME_SOURCE = "SOURCE"; private static final String COLUMN_NAME_ROOT = "ROOT"; private static final String COLUMN_NAME_DELETED = "DELETED"; private static final String COLUMN_NAME_DELETED_BY = "DELETED_BY"; private static final String COLUMN_NAME_DELETED_WHEN= "DELETED_WHEN"; /* (non-Javadoc) * @see com.idega.data.GenericEntity#getEntityName() */ public String getEntityName() { return ENTITY_NAME; } /* (non-Javadoc) * @see com.idega.data.GenericEntity#initializeAttributes() */ public void initializeAttributes() { addAttribute(getIDColumnName()); addAttribute(COLUMN_NAME_NAME, "Name", true, true, String.class); addAttribute(COLUMN_NAME_OWNERSHIP, "Ownership", true, true, Integer.class, "one-to-one", Group.class); addAttribute(COLUMN_NAME_PERMISSION, "Permission", true, true, String.class, 10); addAttribute(COLUMN_NAME_SOURCE, "Query source", true, true, Integer.class, "one-to-one", ICFile.class); addAttribute(COLUMN_NAME_ROOT, "Root", true, true, Integer.class, "one-to-one", QuerySequence.class); addAttribute(COLUMN_NAME_DELETED,"Deleted",true,true,Boolean.class); addAttribute(COLUMN_NAME_DELETED_BY, "Deleted by", true, true, Integer.class, "many-to-one", User.class); addAttribute(COLUMN_NAME_DELETED_WHEN, "Deleted when", true, true, Timestamp.class); } public void setName(String name) { setColumn(COLUMN_NAME_NAME, name); } public String getName() { return getStringColumnValue(COLUMN_NAME_NAME); } public void setOwnership(Group ownership) { setColumn(COLUMN_NAME_OWNERSHIP, ownership); } public Group getOwnership() { return (Group) getColumnValue(COLUMN_NAME_OWNERSHIP); } public void setPermission(String permission) { setColumn(COLUMN_NAME_PERMISSION, permission); } public String getPermisson() { return getStringColumnValue(COLUMN_NAME_PERMISSION); } public void setSourceID(int sourceID) { setColumn(COLUMN_NAME_SOURCE, sourceID); } public int getSourceID() { return getIntColumnValue(COLUMN_NAME_SOURCE); } public void setSource(ICFile source) { setColumn(COLUMN_NAME_SOURCE, source); } public ICFile getSource() { return (ICFile) getColumnValue(COLUMN_NAME_SOURCE); } public void setRootID(int rootID) { setColumn(COLUMN_NAME_ROOT, rootID); } public int getRootID() { return getIntColumnValue(COLUMN_NAME_ROOT); } public void setRoot(QuerySequence root) { setColumn(COLUMN_NAME_ROOT, root); } public QuerySequence getRoot() { return (QuerySequence) getColumnValue(COLUMN_NAME_ROOT); } public void setDeleted(boolean isDeleted) { setColumn(COLUMN_NAME_DELETED, isDeleted); } public void setDeletedBy(User user) { setColumn(COLUMN_NAME_DELETED_BY, user); } public void setDeletedWhen(Timestamp timestamp) { setColumn(COLUMN_NAME_DELETED_WHEN, timestamp); } public boolean getDeleted() { return getBooleanColumnValue(COLUMN_NAME_DELETED); } public User getDeletedBy() { return (User) getColumnValue(COLUMN_NAME_DELETED_BY); } public Timestamp getDeletedWhen() { return ((Timestamp) getColumnValue(COLUMN_NAME_DELETED_WHEN)); } public Collection ejbFindByGroup(Group owner) throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this.getEntityName()); sql.appendWhereEquals(COLUMN_NAME_OWNERSHIP, owner); sql.appendAnd().appendLeftParenthesis(); sql.appendEqualsQuoted(COLUMN_NAME_DELETED, GenericEntity.COLUMN_VALUE_FALSE); sql.appendOrIsNull(COLUMN_NAME_DELETED); sql.appendRightParenthesis(); return this.idoFindPKsByQuery(sql); } public Collection ejbFindByGroupAndPermission(Group owner, String permission) throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this.getEntityName()); sql.appendWhereEquals(COLUMN_NAME_OWNERSHIP, owner); sql.appendAndEqualsQuoted(COLUMN_NAME_PERMISSION, permission); sql.appendAnd().appendLeftParenthesis(); sql.appendEqualsQuoted(COLUMN_NAME_DELETED, GenericEntity.COLUMN_VALUE_FALSE); sql.appendOrIsNull(COLUMN_NAME_DELETED); sql.appendRightParenthesis(); return this.idoFindPKsByQuery(sql); } /** Get all queries but not the deleted ones */ public Collection ejbFindAll() throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this.getEntityName()); sql.appendWhereEqualsQuoted(COLUMN_NAME_DELETED, GenericEntity.COLUMN_VALUE_FALSE); sql.appendOrIsNull(COLUMN_NAME_DELETED); return this.idoFindPKsByQuery(sql); } }