package se.idega.idegaweb.commune.block.forum.business;
import java.util.Collection;
import java.util.Iterator;
import java.util.Vector;
import javax.ejb.FinderException;
import com.idega.block.category.business.CategoryFinder;
import com.idega.block.category.data.ICCategory;
import com.idega.block.category.data.ICCategoryHome;
import com.idega.business.IBOServiceBean;
import com.idega.core.file.data.ICFile;
import com.idega.core.file.data.ICFileHome;
import com.idega.data.IDOLookup;
import com.idega.data.IDOLookupException;
import com.idega.data.IDORelationshipException;
import com.idega.user.data.User;
import com.idega.user.data.UserHome;
public class CommuneForumBusinessBean extends IBOServiceBean implements CommuneForumBusiness{
public User getModerator(ICCategory category) {
int ownerGroupId = category.getOwnerGroupId();
if (ownerGroupId > 0) {
UserHome uHome;
try {
uHome = (UserHome) IDOLookup.getHome(User.class);
return uHome.findByPrimaryKey(new Integer(ownerGroupId));
} catch (FinderException e1) {
e1.printStackTrace(System.err);
} catch (IDOLookupException e) {
e.printStackTrace(System.err);
}
}
return null;
}
public boolean isModerator(ICCategory cat, User currentUser) {
User user = getModerator(cat);
int userId = -1;
int currUserId = -2;
if (user != null) {
userId = ((Integer)user.getPrimaryKey()).intValue();
}
if (currentUser != null) {
currUserId = ((Integer)currentUser.getPrimaryKey()).intValue();
}
return userId == currUserId;
}
public boolean isModerator(int topicID, User currentUser) {
ICCategory cat = CategoryFinder.getInstance().getCategory(topicID);
User user = getModerator(cat);
int userId = -1;
int currUserId = -2;
if (user != null) {
userId = ((Integer)user.getPrimaryKey()).intValue();
}
if (currentUser != null) {
currUserId = ((Integer)currentUser.getPrimaryKey()).intValue();
}
return userId == currUserId;
}
public int getFileCount(ICCategory cat) {
Collection coll;
try {
coll = cat.getFiles();
if (coll != null && !coll.isEmpty()) {
return coll.size();
}
} catch (IDORelationshipException e) {
e.printStackTrace(System.err);
}
return 0;
}
public Collection convertFilePKsToFileCollection(Collection filePKs) {
Vector v = new Vector();
if (filePKs != null && !filePKs.isEmpty()) {
Iterator iter = filePKs.iterator();
while (iter.hasNext()) {
v.add(iter.next());
}
}
return v;
}
public ICCategoryHome getICCategoryHome() throws IDOLookupException {
return (ICCategoryHome) IDOLookup.getHome(ICCategory.class);
}
public ICFileHome getICFileHome() throws IDOLookupException {
return (ICFileHome) IDOLookup.getHome(ICFile.class);
}
}