001: /**********************************************************************************
002: * $URL: https://source.sakaiproject.org/svn/msgcntr/tags/sakai_2-4-1/messageforums-hbm/src/java/org/sakaiproject/component/app/messageforums/MembershipItem.java $
003: * $Id: MembershipItem.java 20702 2007-01-26 15:40:06Z wagnermr@iupui.edu $
004: ***********************************************************************************
005: *
006: * Copyright (c) 2003, 2004, 2005, 2006 The Sakai Foundation.
007: *
008: * Licensed under the Educational Community License, Version 1.0 (the "License");
009: * you may not use this file except in compliance with the License.
010: * You may obtain a copy of the License at
011: *
012: * http://www.opensource.org/licenses/ecl1.php
013: *
014: * Unless required by applicable law or agreed to in writing, software
015: * distributed under the License is distributed on an "AS IS" BASIS,
016: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: * See the License for the specific language governing permissions and
018: * limitations under the License.
019: *
020: **********************************************************************************/package org.sakaiproject.component.app.messageforums;
021:
022: import org.sakaiproject.id.cover.IdManager;
023: import org.sakaiproject.authz.api.Role;
024: import org.sakaiproject.site.api.Group;
025: import org.sakaiproject.user.api.User;
026:
027: /**
028: * Recipient Item for storing different types of recipients user/group/role
029: *
030: */
031: public class MembershipItem implements Comparable {
032:
033: /** in memory type sort */
034: public static final Integer TYPE_NOT_SPECIFIED = new Integer(0);
035: public static final Integer TYPE_ALL_PARTICIPANTS = new Integer(1);
036: public static final Integer TYPE_ROLE = new Integer(2);
037: public static final Integer TYPE_GROUP = new Integer(3);
038: public static final Integer TYPE_USER = new Integer(4);
039:
040: public static final String ALL_PARTICIPANTS_DESC = "All Participants";
041: public static final String NOT_SPECIFIED_DESC = "Not Specified";
042:
043: /** generated id */
044: private String id;
045:
046: private String name;
047: private Integer type;
048: private Role role;
049: private Group group;
050: private User user;
051: private boolean viewable;
052:
053: private MembershipItem() {
054: }
055:
056: public static MembershipItem getInstance() {
057: MembershipItem item = new MembershipItem();
058: item.id = IdManager.createUuid();
059: return item;
060: }
061:
062: public String getId() {
063: return id;
064: }
065:
066: public String getName() {
067: return name;
068: }
069:
070: public void setName(String name) {
071: this .name = name;
072: }
073:
074: public Role getRole() {
075: return role;
076: }
077:
078: public void setRole(Role role) {
079: this .role = role;
080: }
081:
082: public User getUser() {
083: return user;
084: }
085:
086: public void setUser(User user) {
087: this .user = user;
088: }
089:
090: public Group getGroup() {
091: return group;
092: }
093:
094: public void setGroup(Group group) {
095: this .group = group;
096: }
097:
098: public Integer getType() {
099: return type;
100: }
101:
102: public void setType(Integer type) {
103: this .type = type;
104: }
105:
106: public boolean isViewable() {
107: return viewable;
108: }
109:
110: public void setViewable(boolean viewable) {
111: this .viewable = viewable;
112: }
113:
114: /**
115: * @see java.lang.Comparable#compareTo(java.lang.Object)
116: */
117: public int compareTo(Object o) {
118: MembershipItem item = (MembershipItem) o;
119:
120: int typeCompareResult = type.compareTo(item.type);
121:
122: if (typeCompareResult != 0) {
123: return typeCompareResult;
124: } else {
125: return (this .name).toLowerCase().compareTo(
126: (item.name).toLowerCase());
127: }
128: }
129:
130: /**
131: * @see java.lang.Object#equals(java.lang.Object)
132: */
133: public boolean equals(Object obj) {
134: if (obj == this ) {
135: return true;
136: }
137:
138: if (!(obj instanceof MembershipItem))
139: return false;
140:
141: MembershipItem rcptObj = (MembershipItem) obj;
142:
143: return id == null ? rcptObj.id == null : id.equals(rcptObj.id);
144: }
145:
146: /**
147: * @see java.lang.Object#hashCode()
148: */
149: public int hashCode() {
150: return id.hashCode();
151: }
152:
153: }
|