01: /**********************************************************************************
02: * $URL: https://source.sakaiproject.org/svn/sections/tags/sakai_2-4-1/sections-impl/sakai/model/src/java/org/sakaiproject/component/section/sakai/ParticipationRecordImpl.java $
03: * $Id: ParticipationRecordImpl.java 18134 2006-11-14 18:59:25Z jholtzman@berkeley.edu $
04: ***********************************************************************************
05: *
06: * Copyright (c) 2005, 2006 The Regents of the University of California and The Regents of the University of Michigan
07: *
08: * Licensed under the Educational Community License, Version 1.0 (the "License");
09: * you may not use this file except in compliance with the License.
10: * You may obtain a copy of the License at
11: *
12: * http://www.opensource.org/licenses/ecl1.php
13: *
14: * Unless required by applicable law or agreed to in writing, software
15: * distributed under the License is distributed on an "AS IS" BASIS,
16: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: * See the License for the specific language governing permissions and
18: * limitations under the License.
19: *
20: **********************************************************************************/package org.sakaiproject.component.section.sakai;
21:
22: import java.io.Serializable;
23:
24: import org.apache.commons.lang.builder.EqualsBuilder;
25: import org.apache.commons.lang.builder.HashCodeBuilder;
26: import org.apache.commons.lang.builder.ToStringBuilder;
27: import org.sakaiproject.section.api.coursemanagement.LearningContext;
28: import org.sakaiproject.section.api.coursemanagement.ParticipationRecord;
29: import org.sakaiproject.section.api.coursemanagement.User;
30: import org.sakaiproject.section.api.facade.Role;
31:
32: /**
33: * A base class of ParticipationRecords for detachable persistent storage.
34: *
35: * @author <a href="mailto:jholtzman@berkeley.edu">Josh Holtzman</a>
36: *
37: */
38: public abstract class ParticipationRecordImpl implements
39: ParticipationRecord, Serializable {
40:
41: protected User user;
42: protected String userUid;
43: protected LearningContext learningContext;
44:
45: public User getUser() {
46: return user;
47: }
48:
49: /**
50: * Returns null, since this is an unknown type of participant
51: */
52: public Role getRole() {
53: return null;
54: }
55:
56: public String getUserUid() {
57: return userUid;
58: }
59:
60: public void setUserUid(String userUid) {
61: this .userUid = userUid;
62: }
63:
64: public LearningContext getLearningContext() {
65: return learningContext;
66: }
67:
68: public void setLearningContext(LearningContext learningContext) {
69: this .learningContext = learningContext;
70: }
71:
72: public boolean equals(Object o) {
73: if (o == this ) {
74: return true;
75: }
76: if (o instanceof ParticipationRecord) {
77: ParticipationRecordImpl other = (ParticipationRecordImpl) o;
78: return new EqualsBuilder().append(userUid,
79: other.getUserUid()).append(learningContext,
80: other.getLearningContext()).isEquals();
81: }
82: return false;
83: }
84:
85: public int hashCode() {
86: return new HashCodeBuilder(17, 37).append(userUid).append(
87: learningContext).toHashCode();
88: }
89:
90: public String toString() {
91: return new ToStringBuilder(this).append(userUid).append(
92: learningContext).toString();
93: }
94: }
|