TopicKey.java
package org.exoplatform.forum.service.cache.model.key;
import org.exoplatform.forum.common.cache.model.ScopeCacheKey;
import org.exoplatform.forum.service.Topic;
import org.exoplatform.forum.service.Utils;
public class TopicKey extends ScopeCacheKey {
private static final long serialVersionUID = 1L;
private final String topicPath;
private final boolean isLastPost;
public TopicKey(String topicPath, boolean lastPost) {
this.topicPath = Utils.getSubPath(topicPath);
isLastPost = lastPost;
}
public TopicKey(Topic topic) {
this.topicPath = Utils.getSubPath(topic.getPath());
this.isLastPost = false;
}
public String getTopicPath() {
return topicPath;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof TopicKey)) return false;
if (!super.equals(o)) return false;
TopicKey topicKey = (TopicKey) o;
if (isLastPost != topicKey.isLastPost) return false;
if (topicPath != null ? !topicPath.equals(topicKey.topicPath) : topicKey.topicPath != null) return false;
return true;
}
@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + (topicPath != null ? topicPath.hashCode() : 0);
result = 31 * result + (isLastPost ? 1 : 0);
return result;
}
}