Initial import.
2 * StarOffice News Server
3 * see AUTHORS for the list of contributors
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 package com.so.news.command;
21 import java.io.IOException;
22 import com.so.news.NNTPConnection;
23 import com.so.news.storage.Article;
24 import com.so.news.storage.Group;
27 * Class handling the NEXT and LAST command.
28 * @author Christian Lins
29 * @author Dennis Schwerdel
31 public class NextCommand extends Command
33 public NextCommand(NNTPConnection conn)
38 public boolean process(String[] command) throws IOException
40 String commandName = command[0];
41 if (!(commandName.equalsIgnoreCase("NEXT") || commandName
42 .equalsIgnoreCase("LAST")))
44 // untested, RFC977 complient
45 Article currA = getCurrentArticle();
46 Group currG = getCurrentGroup();
49 printStatus(420, "no current article has been selected");
54 printStatus(412, "no newsgroup selected");
58 if (commandName.equalsIgnoreCase("NEXT"))
60 article = currA.nextArticleInGroup();
63 printStatus(421, "no next article in this group");
69 article = currA.prevArticleInGroup();
72 printStatus(422, "no previous article in this group");
76 setCurrentArticle(article);
77 printStatus(223, article.getNumberInGroup() + " " + article.getMessageID()
78 + " article retrieved - request text separately");