From: David ‘Bombe’ Roden Date: Sat, 12 Apr 2008 14:01:40 +0000 (+0000) Subject: add FcpPluginMessage X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;ds=inline;h=6cf60efd391e166f82bddb9683e4ef6177d072d9;p=jSite2.git add FcpPluginMessage git-svn-id: http://trooper/svn/projects/jSite/trunk@726 c3eda9e8-030b-0410-8277-bc7414b0a119 --- diff --git a/TODO b/TODO index 7c5fc9e..b036859 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,5 @@ ClientPutComplexDir ClientPutDiskDir -FCPPluginMessage (since 1075) FCPPluginReply (since 1075) GetPluginInfo (since 1075) GetRequestStatus diff --git a/src/net/pterodactylus/util/fcp/PluginMessage.java b/src/net/pterodactylus/util/fcp/PluginMessage.java new file mode 100644 index 0000000..f78b267 --- /dev/null +++ b/src/net/pterodactylus/util/fcp/PluginMessage.java @@ -0,0 +1,77 @@ +/* + * jSite2 - PluginMessage.java - + * Copyright © 2008 David Roden + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package net.pterodactylus.util.fcp; + +/** + * A “PluginMessage” sends a message with custom parameters and (optional) + * payload to a plugin. + * + * @author David ‘Bombe’ Roden <bombe@freenetproject.org> + * @version $Id$ + */ +public class PluginMessage extends FcpMessage { + + /** + * Creates a new “PluginMessage” message for the given plugin. + * + * @param pluginClass + * The name of the plugin class + */ + public PluginMessage(String pluginClass) { + super("FCPPluginMessage"); + setField("PluginName", pluginClass); + } + + /** + * Sets the identifier of the request. Though this is still optional you are + * encouraged to include it because the plugin might reply in random order + * to requests. + * + * @param identifier + * The identifier of the request + */ + public void setIdentifier(String identifier) { + setField("Identifier", identifier); + } + + /** + * Sets a custom parameter for the plugin. + * + * @param key + * The key of the parameter + * @param value + * The value of the parameter + */ + public void setParameter(String key, String value) { + setField("Param." + key, value); + } + + /** + * Sets the length of data of the optional payload. If you call this method + * you also have to call {@link #setPayloadInputStream(java.io.InputStream)}! + * + * @param dataLength + * The length of data in the payload input stream + */ + public void setDataLength(long dataLength) { + setField("DataLength", String.valueOf(dataLength)); + } + +}