1 package net.sf.josceleton.core.impl.entity.message;
2
3 import net.sf.josceleton.core.api.entity.User;
4 import net.sf.josceleton.core.api.entity.UserState;
5 import net.sf.josceleton.core.api.entity.message.UserMessage;
6
7 import com.google.inject.Inject;
8 import com.google.inject.assistedinject.Assisted;
9
10 class UserMessageImpl extends GenericMessageImpl implements UserMessage {
11
12 private final UserState userState;
13
14 @Inject UserMessageImpl(
15 @Assisted final User user,
16 @Assisted final UserState userState) {
17 super(user);
18 this.userState = userState;
19 }
20
21
22 @Override public final UserState getUserState() {
23 return this.userState;
24 }
25
26 @Override public final boolean equals(final Object other) {
27 if(this == other) { return true; }
28 if((other instanceof UserMessage) == false) { return false; }
29 final UserMessage that = (UserMessage) other;
30 return this.getUser().equals(that.getUser()) &&
31 this.getUserState().equals(that.getUserState());
32 }
33
34 @Override public final int hashCode() {
35 return this.getUser().hashCode();
36 }
37
38 @Override public final String toString() {
39 return "UserMessageImpl[user=" + this.getUser() + ", userState=" + this.userState + "]";
40 }
41
42 }