/*
* Copyright 1998-2016 Linux.org.ru
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ru.org.linux.group;
import com.google.common.collect.ImmutableList;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import ru.org.linux.topic.Topic;
import ru.org.linux.user.User;
import ru.org.linux.util.StringUtil;
import java.io.Serializable;
import java.sql.Timestamp;
public class TopicsListItem implements Serializable {
private final String subj;
private final Timestamp lastmod;
private final int msgid;
private final boolean deleted;
private final int stat1;
private final int stat3;
private final boolean sticky;
private final int pages;
private final User author;
private final ImmutableList<String> tags;
private final boolean resolved;
private static final long serialVersionUID = 5344250574674257995L;
// SELECT topics.title as subj, sections.name, lastmod, topics.id as msgid, topics.deleted, topics.stat1, topics.stat3, topics.sticky, userid
public TopicsListItem(User author, SqlRowSet rs, int messagesInPage, ImmutableList<String> tags) {
this.author = author;
this.tags = tags;
subj = StringUtil.makeTitle(rs.getString("subj"));
Timestamp lastmod = rs.getTimestamp("lastmod");
if (lastmod==null) {
this.lastmod = new Timestamp(0);
} else {
this.lastmod = lastmod;
}
msgid = rs.getInt("msgid");
deleted = rs.getBoolean("deleted");
stat1 = rs.getInt("stat1");
stat3 = rs.getInt("stat3");
sticky = rs.getBoolean("sticky");
resolved = rs.getBoolean("resolved");
pages = Topic.getPageCount(stat1, messagesInPage);
}
public String getSubj() {
return subj;
}
public Timestamp getLastmod() {
return lastmod;
}
public User getAuthor() {
return author;
}
public int getMsgid() {
return msgid;
}
public boolean isDeleted() {
return deleted;
}
public int getStat1() {
return stat1;
}
public int getStat3() {
return stat3;
}
public boolean isSticky() {
return sticky;
}
public int getPages() {
return pages;
}
public boolean isResolved(){
return resolved;
}
public ImmutableList<String> getTags() {
return tags;
}
}