package it.demo.twitterlike.android.domain;
import it.demo.twitterlike.android.utils.UserUtils;
import it.demo.twitterlike.rest.api.UserProfile;
import java.io.Serializable;
import org.springframework.hateoas.Link;
public class InternalUserProfile implements Serializable,
Comparable<InternalUserProfile> {
private static final long serialVersionUID = 1L;
private final UserProfile user;
private final Link self;
private final Link messages;
private boolean follow;
public InternalUserProfile(UserProfile user, Link self, Link messages,
boolean follow) {
super();
this.user = user;
this.self = self;
this.messages = messages;
this.follow = follow;
}
@Override
public int compareTo(InternalUserProfile another) {
int result = UserUtils.getUserFullName(user).compareTo(
UserUtils.getUserFullName(another.user));
if (result == 0) {
result = self.getHref().compareTo(another.getSelf().getHref());
}
return result;
}
public Link getSelf() {
return self;
}
public boolean isFollow() {
return follow;
}
public UserProfile getUser() {
return user;
}
public Link getMessages() {
return messages;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((self == null) ? 0 : self.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
InternalUserProfile other = (InternalUserProfile) obj;
if (self == null) {
if (other.self != null)
return false;
} else if (!self.equals(other.self))
return false;
return true;
}
@Override
public String toString() {
return "InternalUserProfile [user="
+ (user == null ? null : user.getId()) + "]";
}
}