diff -r f907866f0e4b -r 6fceb66e1ad7 trunk/com/so/news/command/ArticleCommand.java
--- a/trunk/com/so/news/command/ArticleCommand.java Tue Jan 20 10:21:03 2009 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
- * StarOffice News Server
- * see AUTHORS for the list of contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package com.so.news.command;
-
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.Locale;
-import java.util.Map;
-import com.so.news.Debug;
-import com.so.news.NNTPConnection;
-import com.so.news.storage.Article;
-
-/**
- * Class handling the ARTICLE command.
- * @author Christian Lins
- * @author Dennis Schwerdel
- */
-public class ArticleCommand extends Command
-{
- public ArticleCommand(NNTPConnection connection)
- {
- super(connection);
- }
-
- public boolean process(String[] command) throws IOException
- {
- String commandName = command[0];
-
- // untested, RFC977 compliant
- Article article = null;
- if (command.length <= 1)
- {
- article = getCurrentArticle();
- if (article == null)
- {
- printStatus(420, "no current article has been selected");
- return true;
- }
- }
- else if (command[1].matches(NNTPConnection.MESSAGE_ID_PATTERN))
- {
- // Message-ID
- article = Article.getByMessageID(command[1]);
- if (article == null)
- {
- printStatus(430, "no such article found");
- return true;
- }
- }
- else
- {
- // Message Number
- try
- {
- int num = Integer.parseInt(command[1]);
- article = Article.getByNumberInGroup(connection.getCurrentGroup(), num);
- }
- catch (Exception ex)
- {
- ex.printStackTrace(Debug.getInstance().getStream());
- System.err.println(ex.getLocalizedMessage());
- }
- if (article == null)
- {
- printStatus(423, "no such article number in this group");
- return true;
- }
- setCurrentArticle(article);
- }
-
- if (commandName.equalsIgnoreCase("ARTICLE"))
- {
- printStatus(220, article.getNumberInGroup() + " " + article.getMessageID()
- + " article retrieved - head and body follow");
- Map header = article.getHeader();
- for(Map.Entry entry : header.entrySet())
- {
- if(entry.getKey().equals("Date"))
- {
- SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US);
- printTextPart("Date: " + sdf.format(article.getDate()));
- }
- else
- printTextPart(entry.getKey() + ": " + entry.getValue());
- }
- println("");
- printText(article.getBody());
- }
- else if (commandName.equalsIgnoreCase("HEAD"))
- {
- printStatus(500, "No longer supported! Use XOVER instead.");
- return false;
- }
- else if (commandName.equalsIgnoreCase("BODY"))
- {
- printStatus(222, article.getNumberInGroup() + " " + article.getMessageID()
- + " body");
- printText(article.getBody());
- }
- else if (commandName.equalsIgnoreCase("STAT"))
- {
- printStatus(223, article.getNumberInGroup() + " " + article.getMessageID()
- + " article retrieved - request text separately");
- }
- return true;
- }
-
-}