/*
* $Id: Group.java,v 1.49 2005/08/18 10:23:00 sigtryggur Exp $
* Created on Nov 16, 2004
*
* Copyright (C) 2004 Idega Software 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 java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.ejb.CreateException;
import javax.ejb.EJBException;
import javax.ejb.FinderException;
import javax.ejb.RemoveException;
import com.idega.core.builder.data.ICPage;
import com.idega.core.contact.data.Email;
import com.idega.core.contact.data.Phone;
import com.idega.core.data.ICTreeNode;
import com.idega.core.file.data.ICFile;
import com.idega.core.location.data.Address;
import com.idega.core.location.data.AddressType;
import com.idega.data.IDOAddRelationshipException;
import com.idega.data.IDOCompositePrimaryKeyException;
import com.idega.data.IDOEntity;
import com.idega.data.IDOLookupException;
import com.idega.data.IDORelationshipException;
import com.idega.data.MetaDataCapable;
import com.idega.data.UniqueIDCapable;
import com.idega.data.query.SelectQuery;
import com.idega.idegaweb.IWApplicationContext;
/**
*
* Last modified: $Date: 2005/08/18 10:23:00 $ by $Author: sigtryggur $
*
* @author <a href="mailto:eiki@idega.com">eiki</a>
* @version $Revision: 1.49 $
*/
public interface Group extends IDOEntity, ICTreeNode, MetaDataCapable, UniqueIDCapable {
/**
* @see com.idega.user.data.GroupBMPBean#getGroupTypeValue
*/
public String getGroupTypeValue();
/**
* @see com.idega.user.data.GroupBMPBean#getGroupTypeKey
*/
public String getGroupTypeKey();
/**
* @see com.idega.user.data.GroupBMPBean#getGroupTypeDescription
*/
public String getGroupTypeDescription();
/**
* @see com.idega.user.data.GroupBMPBean#getName
*/
public String getName();
/**
* @see com.idega.user.data.GroupBMPBean#setName
*/
public void setName(String name);
/**
* @see com.idega.user.data.GroupBMPBean#getGroupType
*/
public String getGroupType();
/**
* @see com.idega.user.data.GroupBMPBean#setGroupType
*/
public void setGroupType(String groupType);
/**
* @see com.idega.user.data.GroupBMPBean#setGroupType
*/
public void setGroupType(GroupType groupType);
/**
* @see com.idega.user.data.GroupBMPBean#setAliasID
*/
public void setAliasID(int id);
/**
* @see com.idega.user.data.GroupBMPBean#setAlias
*/
public void setAlias(Group alias);
/**
* @see com.idega.user.data.GroupBMPBean#getAliasID
*/
public int getAliasID();
/**
* @see com.idega.user.data.GroupBMPBean#getAlias
*/
public Group getAlias();
/**
* @see com.idega.user.data.GroupBMPBean#isAlias
*/
public boolean isAlias();
/**
* @see com.idega.user.data.GroupBMPBean#setPermissionControllingGroupID
*/
public void setPermissionControllingGroupID(int id);
/**
* @see com.idega.user.data.GroupBMPBean#setPermissionControllingGroup
*/
public void setPermissionControllingGroup(Group controllingGroup);
/**
* @see com.idega.user.data.GroupBMPBean#getPermissionControllingGroupID
*/
public int getPermissionControllingGroupID();
/**
* @see com.idega.user.data.GroupBMPBean#getPermissionControllingGroup
*/
public Group getPermissionControllingGroup();
/**
* @see com.idega.user.data.GroupBMPBean#setShortName
*/
public void setShortName(String shortName);
/**
* @see com.idega.user.data.GroupBMPBean#setAbbrevation
*/
public void setAbbrevation(String abbr);
/**
* @see com.idega.user.data.GroupBMPBean#getDescription
*/
public String getDescription();
/**
* @see com.idega.user.data.GroupBMPBean#setDescription
*/
public void setDescription(String description);
/**
* @see com.idega.user.data.GroupBMPBean#getExtraInfo
*/
public String getExtraInfo();
/**
* @see com.idega.user.data.GroupBMPBean#setExtraInfo
*/
public void setExtraInfo(String extraInfo);
/**
* @see com.idega.user.data.GroupBMPBean#getCreated
*/
public Timestamp getCreated();
/**
* @see com.idega.user.data.GroupBMPBean#setCreated
*/
public void setCreated(Timestamp created);
/**
* @see com.idega.user.data.GroupBMPBean#getHomePageID
*/
public int getHomePageID();
/**
* @see com.idega.user.data.GroupBMPBean#getHomePage
*/
public ICPage getHomePage();
/**
* @see com.idega.user.data.GroupBMPBean#setHomePageID
*/
public void setHomePageID(int pageID);
/**
* @see com.idega.user.data.GroupBMPBean#setHomePageID
*/
public void setHomePageID(Integer pageID);
/**
* @see com.idega.user.data.GroupBMPBean#setHomePage
*/
public void setHomePage(ICPage page);
/**
* @see com.idega.user.data.GroupBMPBean#getHomeFolderID
*/
public int getHomeFolderID();
/**
* @see com.idega.user.data.GroupBMPBean#getHomeFolder
*/
public ICFile getHomeFolder();
/**
* @see com.idega.user.data.GroupBMPBean#setHomeFolderID
*/
public void setHomeFolderID(int fileID);
/**
* @see com.idega.user.data.GroupBMPBean#setHomeFolderID
*/
public void setHomeFolderID(Integer fileID);
/**
* @see com.idega.user.data.GroupBMPBean#setHomeFolder
*/
public void setHomeFolder(ICFile file);
/**
* @see com.idega.user.data.GroupBMPBean#getShortName
*/
public String getShortName();
/**
* @see com.idega.user.data.GroupBMPBean#getAbbrevation
*/
public String getAbbrevation();
/**
* @see com.idega.user.data.GroupBMPBean#getHomePageURL
*/
public String getHomePageURL();
/**
* @see com.idega.user.data.GroupBMPBean#setHomePageURL
*/
public void setHomePageURL(String homePage);
/**
* @see com.idega.user.data.GroupBMPBean#setIsPermissionControllingGroup
*/
public void setIsPermissionControllingGroup(boolean isControlling);
/**
* @see com.idega.user.data.GroupBMPBean#isPermissionControllingGroup
*/
public boolean isPermissionControllingGroup();
/**
* @see com.idega.user.data.GroupBMPBean#getParentGroups
*/
public List getParentGroups() throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#getParentGroups
*/
public List getParentGroups(Map cachedParents, Map cachedGroups) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#getChildGroups
*/
public List getChildGroups() throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#getChildGroups
*/
public List getChildGroups(String[] groupTypes, boolean returnSpecifiedGroupTypes) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#getChildGroupsIDs
*/
public List getChildGroupsIDs(String[] groupTypes, boolean returnSpecifiedGroupTypes) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#getChildGroups
*/
public Collection getChildGroups(Group groupTypeProxy) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#getAllGroupsContainingUser
*/
public Collection getAllGroupsContainingUser(User user) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#addGroup
*/
public void addGroup(Group groupToAdd) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#addGroup
*/
public void addGroup(User userToAdd) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#addGroup
*/
public void addGroup(Group groupToAdd, Timestamp time) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#addGroup
*/
public void addGroup(int groupId, Timestamp time) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#addGroup
*/
public void addGroup(int groupId) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#addRelation
*/
public void addRelation(Group groupToAdd, String relationType) throws CreateException;
/**
* @see com.idega.user.data.GroupBMPBean#addRelation
*/
public void addRelation(Group groupToAdd, GroupRelationType relationType) throws CreateException;
/**
* @see com.idega.user.data.GroupBMPBean#addRelation
*/
public void addRelation(int relatedGroupId, GroupRelationType relationType) throws CreateException;
/**
* @see com.idega.user.data.GroupBMPBean#addRelation
*/
public void addRelation(int relatedGroupId, String relationType) throws CreateException;
/**
* @see com.idega.user.data.GroupBMPBean#addUniqueRelation
*/
public void addUniqueRelation(int relatedGroupId, String relationType, Timestamp time) throws CreateException;
/**
* @see com.idega.user.data.GroupBMPBean#addUniqueRelation
*/
public void addUniqueRelation(int relatedGroupId, String relationType) throws CreateException;
/**
* @see com.idega.user.data.GroupBMPBean#addUniqueRelation
*/
public void addUniqueRelation(Group relatedGroup, String relationType) throws CreateException;
/**
* @see com.idega.user.data.GroupBMPBean#removeRelation
*/
public void removeRelation(Group relatedGroup, String relationType) throws RemoveException;
/**
* @see com.idega.user.data.GroupBMPBean#removeRelation
*/
public void removeRelation(int relatedGroupId, String relationType) throws RemoveException;
/**
* @see com.idega.user.data.GroupBMPBean#removeRelation
*/
public void removeRelation(Group relatedGroup, String relationType, User performer) throws RemoveException;
/**
* @see com.idega.user.data.GroupBMPBean#removeRelation
*/
public void removeRelation(int relatedGroupId, String relationType, User performer) throws RemoveException;
/**
* @see com.idega.user.data.GroupBMPBean#getRelatedBy
*/
public Collection getRelatedBy(GroupRelationType relationType) throws FinderException;
/**
* @see com.idega.user.data.GroupBMPBean#getRelatedBy
*/
public Collection getRelatedBy(String relationType) throws FinderException;
/**
* @see com.idega.user.data.GroupBMPBean#getReverseRelatedBy
*/
public Collection getReverseRelatedBy(String relationType) throws FinderException;
/**
* @see com.idega.user.data.GroupBMPBean#removeUser
*/
public void removeUser(User user, User currentUser) throws RemoveException;
/**
* @see com.idega.user.data.GroupBMPBean#removeUser
*/
public void removeUser(User user, User currentUser, Timestamp time) throws RemoveException;
/**
* @see com.idega.user.data.GroupBMPBean#hasRelationTo
*/
public boolean hasRelationTo(Group group);
/**
* @see com.idega.user.data.GroupBMPBean#hasRelationTo
*/
public boolean hasRelationTo(int groupId);
/**
* @see com.idega.user.data.GroupBMPBean#hasRelationTo
*/
public boolean hasRelationTo(int groupId, String relationType);
/**
* @see com.idega.user.data.GroupBMPBean#getChildrenIterator
*/
public Iterator getChildrenIterator();
/**
* @see com.idega.user.data.GroupBMPBean#getChildren
*/
public Collection getChildren();
/**
* @see com.idega.user.data.GroupBMPBean#getAllowsChildren
*/
public boolean getAllowsChildren();
/**
* @see com.idega.user.data.GroupBMPBean#getChildAtIndex
*/
public ICTreeNode getChildAtIndex(int childIndex);
/**
* @see com.idega.user.data.GroupBMPBean#getChildCount
*/
public int getChildCount();
/**
* @see com.idega.user.data.GroupBMPBean#getIndex
*/
public int getIndex(ICTreeNode node);
/**
* @see com.idega.user.data.GroupBMPBean#getParentNode
*/
public ICTreeNode getParentNode();
/**
* @see com.idega.user.data.GroupBMPBean#isLeaf
*/
public boolean isLeaf();
/**
* @see com.idega.user.data.GroupBMPBean#getNodeName
*/
public String getNodeName();
/**
* @see com.idega.user.data.GroupBMPBean#getNodeName
*/
public String getNodeName(Locale locale);
/**
* @see com.idega.user.data.GroupBMPBean#getNodeName
*/
public String getNodeName(Locale locale, IWApplicationContext iwac);
/**
* @see com.idega.user.data.GroupBMPBean#getNodeID
*/
public int getNodeID();
/**
* @see com.idega.user.data.GroupBMPBean#getSiblingCount
*/
public int getSiblingCount();
/**
* @see com.idega.user.data.GroupBMPBean#getNodeType
*/
public int getNodeType();
/**
* @see com.idega.user.data.GroupBMPBean#store
*/
public void store();
/**
* @see com.idega.user.data.GroupBMPBean#isUser
*/
public boolean isUser();
/**
* @see com.idega.user.data.GroupBMPBean#addAddress
*/
public void addAddress(Address address) throws IDOAddRelationshipException;
/**
* @see com.idega.user.data.GroupBMPBean#getAddresses
*/
public Collection getAddresses(AddressType addressType) throws IDOLookupException, IDOCompositePrimaryKeyException,
IDORelationshipException;
/**
* @see com.idega.user.data.GroupBMPBean#getPhones
*/
public Collection getPhones();
/**
* @see com.idega.user.data.GroupBMPBean#getPhones
*/
public Collection getPhones(String phoneTypeID);
/**
* @see com.idega.user.data.GroupBMPBean#getEmails
*/
public Collection getEmails();
/**
* @see com.idega.user.data.GroupBMPBean#addEmail
*/
public void addEmail(Email email) throws IDOAddRelationshipException;
/**
* @see com.idega.user.data.GroupBMPBean#addPhone
*/
public void addPhone(Phone phone) throws IDOAddRelationshipException;
/**
* @see com.idega.user.data.GroupBMPBean#removeGroup
*/
public void removeGroup(Group entityToRemoveFrom, User currentUser) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#removeGroup
*/
public void removeGroup(User currentUser) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#removeGroup
*/
public void removeGroup(int relatedGroupId, User currentUser, boolean AllEntries, Timestamp time)
throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#removeGroup
*/
public void removeGroup(int relatedGroupId, User currentUser, boolean AllEntries) throws EJBException;
/**
* @see com.idega.user.data.GroupBMPBean#getSelectQueryConstraints
*/
public SelectQuery getSelectQueryConstraints();
}