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 org.sonews.daemon.command;
21 import java.io.IOException;
22 import java.nio.charset.Charset;
23 import java.sql.SQLException;
24 import org.sonews.daemon.NNTPConnection;
25 import org.sonews.daemon.storage.Article;
26 import org.sonews.daemon.storage.Group;
29 * Base class for all command handling classes.
30 * @author Christian Lins
31 * @author Dennis Schwerdel
34 public abstract class AbstractCommand
37 protected NNTPConnection connection;
39 public AbstractCommand(final NNTPConnection connection)
41 this.connection = connection;
44 protected Article getCurrentArticle()
46 return connection.getCurrentArticle();
49 protected Group getCurrentGroup()
51 return connection.getCurrentGroup();
54 protected void setCurrentArticle(final Article current)
56 connection.setCurrentArticle(current);
59 protected void setCurrentGroup(final Group current)
61 connection.setCurrentGroup(current);
64 public abstract void processLine(String line)
65 throws IOException, SQLException;
67 protected void println(final String line)
70 connection.println(line);
73 protected void println(final String line, final Charset charset)
76 connection.println(line, charset);
79 protected void printStatus(final int status, final String msg)
82 println(status + " " + msg);
85 public abstract boolean hasFinished();