chris@3: /* chris@3: * SONEWS News Server chris@3: * see AUTHORS for the list of contributors chris@3: * chris@3: * This program is free software: you can redistribute it and/or modify chris@3: * it under the terms of the GNU General Public License as published by chris@3: * the Free Software Foundation, either version 3 of the License, or chris@3: * (at your option) any later version. chris@3: * chris@3: * This program is distributed in the hope that it will be useful, chris@3: * but WITHOUT ANY WARRANTY; without even the implied warranty of chris@3: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the chris@3: * GNU General Public License for more details. chris@3: * chris@3: * You should have received a copy of the GNU General Public License chris@3: * along with this program. If not, see . chris@3: */ chris@3: chris@3: package org.sonews.daemon.command; chris@3: chris@3: import java.io.IOException; chris@3: import org.sonews.daemon.NNTPConnection; chris@3: import org.sonews.storage.StorageBackendException; chris@3: chris@3: /** chris@3: * Interface for pluggable NNTP commands handling classes. chris@3: * @author Christian Lins chris@3: * @since sonews/0.6.0 chris@3: */ chris@3: public interface Command chris@3: { chris@3: cli@20: /** cli@20: * @return true if this instance can be reused. cli@20: */ chris@3: boolean hasFinished(); chris@3: cli@20: /** cli@20: * Returns capability string that is implied by this command class. cli@20: * MAY return null if the command is required by the NNTP standard. cli@20: */ cli@20: String impliedCapability(); cli@20: chris@3: boolean isStateful(); chris@3: chris@3: String[] getSupportedCommandStrings(); chris@3: chris@3: void processLine(NNTPConnection conn, String line, byte[] rawLine) chris@3: throws IOException, StorageBackendException; chris@3: chris@3: }