/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/msgcntr/trunk/messageforums-hbm/src/java/org/sakaiproject/component/app/messageforums/dao/hibernate/AreaImpl.java $
* $Id: AreaImpl.java 9227 2006-05-15 15:02:42Z cwen@iupui.edu $
***********************************************************************************
*
* Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008 The Sakai Foundation
*
* Licensed under the Educational Community License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**********************************************************************************/
package org.sakaiproject.component.app.messageforums.dao.hibernate;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.sakaiproject.api.app.messageforums.Area;
import org.sakaiproject.api.app.messageforums.BaseForum;
import org.sakaiproject.api.app.messageforums.DBMembershipItem;
public class AreaImpl extends MutableEntityImpl implements Area
{
private static final Log LOG = LogFactory.getLog(AreaImpl.class);
private String contextId;
private String name;
private Boolean hidden;
private Boolean locked;
private Boolean moderated;
private Boolean autoMarkThreadsRead;
private Boolean enabled;
private Boolean sendEmailOut=false;
private int sendToEmail;
private String typeUuid;
//private List openForums = new UniqueArrayList();
//private List privateForums = new UniqueArrayList();
//private List discussionForums = new UniqueArrayList();
private Set openForumsSet;// = new HashSet();
private Set privateForumsSet;// = new HashSet();
private Set discussionForumsSet;// = new HashSet();
private Set membershipItemSet;
private Set hiddenGroups;
private Date openDate;
private Date closeDate;
private Boolean postFirst;
/**
* availabilityRestricted: this is the radio button the users turns on or off this feature with
*/
private Boolean availabilityRestricted = false;
/**
* if availabilityRestricted, then this determines whether the area is disabled or not
*/
private Boolean availability = true;
public void setVersion(Integer version)
{
this.version = version;
}
public String getContextId()
{
return contextId;
}
public void setContextId(String contextId)
{
this.contextId = contextId;
}
public Boolean getHidden()
{
return hidden;
}
public void setHidden(Boolean hidden)
{
this.hidden = hidden;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getTypeUuid()
{
return typeUuid;
}
public void setTypeUuid(String typeUuid)
{
this.typeUuid = typeUuid;
}
public Boolean getEnabled()
{
return enabled;
}
public void setEnabled(Boolean enabled)
{
this.enabled = enabled;
}
public int getSendToEmail() {
return sendToEmail;
}
public void setSendToEmail(int sendToEmail) {
this.sendToEmail = sendToEmail;
}
public List getOpenForums()
{
return Util.setToList(openForumsSet);
}
public void setOpenForums(List openForums)
{
this.openForumsSet = Util.listToSet(openForums);
}
public List getPrivateForums()
{
return Util.setToList(privateForumsSet);
}
public void setPrivateForums(List privateForums)
{
this.privateForumsSet = Util.listToSet(privateForums);
}
public List getDiscussionForums()
{
return Util.setToList(discussionForumsSet);
}
public void setDiscussionForums(List discussionForums)
{
this.discussionForumsSet = Util.listToSet(discussionForums);
}
public String toString() {
//return "Area.id:" + id;
return "Area/" + id;
}
public Boolean getLocked() {
return locked;
}
public void setLocked(Boolean locked) {
this.locked = locked;
}
public Boolean getModerated() {
return moderated;
}
public void setModerated(Boolean moderated) {
this.moderated = moderated;
}
public Boolean getAutoMarkThreadsRead() {
return autoMarkThreadsRead;
}
public void setAutoMarkThreadsRead(Boolean autoMarkThreadsRead) {
this.autoMarkThreadsRead = autoMarkThreadsRead;
}
public Set getDiscussionForumsSet() {
return discussionForumsSet;
}
public void setDiscussionForumsSet(Set discussionForumsSet) {
this.discussionForumsSet = discussionForumsSet;
}
public Set getOpenForumsSet() {
return openForumsSet;
}
public void setOpenForumsSet(Set openForumsSet) {
this.openForumsSet = openForumsSet;
}
public Set getPrivateForumsSet() {
return privateForumsSet;
}
public void setPrivateForumsSet(Set privateForumsSet) {
this.privateForumsSet = privateForumsSet;
}
public Set getMembershipItemSet() {
return membershipItemSet;
}
public void setMembershipItemSet(Set membershipItemSet) {
this.membershipItemSet = membershipItemSet;
}
////////////////////////////////////////////////////////////////////////
// helper methods for collections
////////////////////////////////////////////////////////////////////////
public void addPrivateForum(BaseForum forum) {
if (LOG.isDebugEnabled()) {
LOG.debug("addPrivateForum(forum " + forum + ")");
}
if (forum == null) {
throw new IllegalArgumentException("forum == null");
}
if (privateForumsSet == null) {
privateForumsSet = new TreeSet();
}
forum.setArea(this);
privateForumsSet.add(forum);
}
public void removePrivateForum(BaseForum forum) {
if (LOG.isDebugEnabled()) {
LOG.debug("removePrivateForum(forum " + forum + ")");
}
if (forum == null) {
throw new IllegalArgumentException("Illegal topic argument passed!");
}
forum.setArea(null);
privateForumsSet.remove(forum);
}
public void addDiscussionForum(BaseForum forum) {
if (LOG.isDebugEnabled()) {
LOG.debug("addForum(forum " + forum + ")");
}
if (forum == null) {
throw new IllegalArgumentException("forum == null");
}
if (discussionForumsSet == null) {
discussionForumsSet = new TreeSet();
}
forum.setArea(this);
discussionForumsSet.add(forum);
}
public void removeDiscussionForum(BaseForum forum) {
if (LOG.isDebugEnabled()) {
LOG.debug("removeDiscussionForum(forum " + forum + ")");
}
if (forum == null) {
throw new IllegalArgumentException("Illegal topic argument passed!");
}
forum.setArea(null);
discussionForumsSet.remove(forum);
openForumsSet.remove(forum);
}
public void addOpenForum(BaseForum forum) {
if (LOG.isDebugEnabled()) {
LOG.debug("addOpenForum(forum " + forum + ")");
}
if (forum == null) {
throw new IllegalArgumentException("forum == null");
}
if (openForumsSet == null) {
openForumsSet = new TreeSet();
}
forum.setArea(this);
openForumsSet.add(forum);
}
public void removeOpenForum(BaseForum forum) {
if (LOG.isDebugEnabled()) {
LOG.debug("removeOpenForum(forum " + forum + ")");
}
if (forum == null) {
throw new IllegalArgumentException("Illegal topic argument passed!");
}
forum.setArea(null);
openForumsSet.remove(forum);
}
public void addMembershipItem(DBMembershipItem item) {
if (LOG.isDebugEnabled()) {
LOG.debug("addMembershipItem(item " + item + ")");
}
if (item == null) {
throw new IllegalArgumentException("item == null");
}
if (membershipItemSet == null) {
membershipItemSet = new HashSet();
}
membershipItemSet.add(item);
}
public void removeMembershipItem(DBMembershipItem item) {
if (LOG.isDebugEnabled()) {
LOG.debug("removeMembershipItem(item " + item + ")");
}
if (item == null) {
throw new IllegalArgumentException("Illegal level argument passed!");
}
membershipItemSet.remove(item);
}
public Boolean getAvailabilityRestricted() {
return availabilityRestricted;
}
public void setAvailabilityRestricted(Boolean restricted) {
this.availabilityRestricted = restricted;
}
public Date getOpenDate() {
return openDate;
}
public void setOpenDate(Date openDate) {
this.openDate = openDate;
}
public Date getCloseDate() {
return closeDate;
}
public void setCloseDate(Date closeDate) {
this.closeDate = closeDate;
}
public Boolean getAvailability() {
return availability;
}
public void setAvailability(Boolean availability) {
this.availability = availability;
}
public Boolean getPostFirst() {
return postFirst;
}
public void setPostFirst(Boolean postFirst) {
this.postFirst = postFirst;
}
@Override
public Set getHiddenGroups() {
return hiddenGroups;
}
@Override
public void setHiddenGroups(Set hiddenGroups) {
this.hiddenGroups = hiddenGroups;
}
/**
* {@link Deprecated} This option was replaced by sendToEmail via MSGCNTR-708
*/
public Boolean getSendEmailOut() {
return sendEmailOut;
}
/**
* {@link Deprecated} This option was replaced by sendToEmail via MSGCNTR-708
*/
public void setSendEmailOut(Boolean sendEmailOut) {
this.sendEmailOut = sendEmailOut;
}
}