01: /**********************************************************************************
02: * $URL: https://source.sakaiproject.org/svn/sections/tags/sakai_2-4-1/sections-impl/standalone/src/java/org/sakaiproject/component/section/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;
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:
31: /**
32: * A base class of ParticipationRecords for detachable persistent storage.
33: *
34: * @author <a href="mailto:jholtzman@berkeley.edu">Josh Holtzman</a>
35: *
36: */
37: public abstract class ParticipationRecordImpl extends
38: AbstractPersistentObject implements ParticipationRecord,
39: Serializable {
40:
41: protected User user;
42: protected LearningContext learningContext;
43:
44: public User getUser() {
45: return user;
46: }
47:
48: public void setUser(User user) {
49: this .user = user;
50: }
51:
52: public LearningContext getLearningContext() {
53: return learningContext;
54: }
55:
56: public void setLearningContext(LearningContext learningContext) {
57: this .learningContext = learningContext;
58: }
59:
60: public boolean equals(Object o) {
61: if (o == this ) {
62: return true;
63: }
64: if (o instanceof ParticipationRecord) {
65: ParticipationRecord other = (ParticipationRecord) o;
66: return new EqualsBuilder()
67: .append(user, other.getUser())
68: .append(learningContext, other.getLearningContext())
69: .isEquals();
70: }
71: return false;
72: }
73:
74: public int hashCode() {
75: return new HashCodeBuilder(17, 37).append(user).append(
76: learningContext).toHashCode();
77: }
78:
79: public String toString() {
80: return new ToStringBuilder(this).append(user).append(
81: learningContext).toString();
82: }
83: }
|