Delete old high-level client.
authorDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Sun, 15 Mar 2009 19:31:14 +0000 (20:31 +0100)
committerDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Thu, 19 Mar 2009 22:09:09 +0000 (23:09 +0100)
23 files changed:
src/net/pterodactylus/fcp/highlevel/ConnectResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/DirectDiskAccessResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/DownloadResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/GetRequestResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/HighLevelCallback.java [deleted file]
src/net/pterodactylus/fcp/highlevel/HighLevelCallbackListener.java [deleted file]
src/net/pterodactylus/fcp/highlevel/HighLevelClient.java [deleted file]
src/net/pterodactylus/fcp/highlevel/HighLevelClientListener.java [deleted file]
src/net/pterodactylus/fcp/highlevel/HighLevelException.java [deleted file]
src/net/pterodactylus/fcp/highlevel/HighLevelProgress.java [deleted file]
src/net/pterodactylus/fcp/highlevel/HighLevelProgressCallback.java [deleted file]
src/net/pterodactylus/fcp/highlevel/HighLevelProgressCallbackListener.java [deleted file]
src/net/pterodactylus/fcp/highlevel/HighLevelProgressListener.java [deleted file]
src/net/pterodactylus/fcp/highlevel/HighLevelResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/KeyGenerationResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/NotConnectedException.java [deleted file]
src/net/pterodactylus/fcp/highlevel/PeerListResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/PeerResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/PutDirRequestResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/PutRequestResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/RequestListResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/RequestResult.java [deleted file]
src/net/pterodactylus/fcp/highlevel/package-info.java [deleted file]

diff --git a/src/net/pterodactylus/fcp/highlevel/ConnectResult.java b/src/net/pterodactylus/fcp/highlevel/ConnectResult.java
deleted file mode 100644 (file)
index 9bf89aa..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * fcplib - ConnectResult.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.fcp.highlevel;
-
-/**
- * A result of the {@link HighLevelClient#connect(String)} operation.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class ConnectResult extends HighLevelResult {
-
-       /** Whether the node is now connected. */
-       private boolean connected;
-
-       /**
-        * Package-private constructor.
-        */
-       ConnectResult() {
-               super(null);
-       }
-
-       /**
-        * Returns whether the node is now connected.
-        * 
-        * @return <code>true</code> if the node is now connected,
-        *         <code>false</code> otherwise
-        */
-       public boolean isConnected() {
-               return connected;
-       }
-
-       /**
-        * Sets whether the node is now connected.
-        * 
-        * @param connected
-        *            <code>true</code> if the node is now connected,
-        *            <code>false</code> otherwise
-        */
-       void setConnected(boolean connected) {
-               this.connected = connected;
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/DirectDiskAccessResult.java b/src/net/pterodactylus/fcp/highlevel/DirectDiskAccessResult.java
deleted file mode 100644 (file)
index 4824f92..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * jFCPlib-high-level-client - DDAResult.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.fcp.highlevel;
-
-/**
- * The result of a direct disk access check.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class DirectDiskAccessResult extends HighLevelResult {
-
-       /** Whether reading is allowed. */
-       private boolean readAllowed;
-
-       /** Whether writing is allowed. */
-       private boolean writeAllowed;
-
-       /**
-        * Package-private constructor.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        */
-       DirectDiskAccessResult(String identifier) {
-               super(identifier);
-       }
-
-       /**
-        * Returns whether reading the directory is allowed.
-        * 
-        * @return <code>true</code> if the client is allowed to read from the
-        *         directory, <code>false</code> otherwise
-        */
-       public boolean isReadAllowed() {
-               return readAllowed;
-       }
-
-       /**
-        * Sets whether reading the directory is allowed.
-        * 
-        * @param readAllowed
-        *            <code>true</code> if the client is allowed to read from the
-        *            directory, <code>false</code> otherwise
-        */
-       void setReadAllowed(boolean readAllowed) {
-               this.readAllowed = readAllowed;
-       }
-
-       /**
-        * Returns whether writing to the directory is allowed.
-        * 
-        * @return <code>true</code> if the client is allowed to write to the
-        *         directory, <code>false</code> otherwise
-        */
-       public boolean isWriteAllowed() {
-               return writeAllowed;
-       }
-
-       /**
-        * Sets whether writing to the directory is allowed.
-        * 
-        * @param writeAllowed
-        *            <code>true</code> if the client is allowed to write to the
-        *            directory, <code>false</code> otherwise
-        */
-       void setWriteAllowed(boolean writeAllowed) {
-               this.writeAllowed = writeAllowed;
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/DownloadResult.java b/src/net/pterodactylus/fcp/highlevel/DownloadResult.java
deleted file mode 100644 (file)
index 7ca520e..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * jFCPlib-high-level-client - DownloadResult.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.fcp.highlevel;
-
-/**
- * The result of a download.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class DownloadResult extends HighLevelProgress {
-
-       /**
-        * Package-private constructor.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        */
-       DownloadResult(String identifier) {
-               super(identifier);
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/GetRequestResult.java b/src/net/pterodactylus/fcp/highlevel/GetRequestResult.java
deleted file mode 100644 (file)
index 3a8b340..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * jFCPlib-high-level-client - GetRequestResult.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.fcp.highlevel;
-
-import net.pterodactylus.fcp.Persistence;
-import net.pterodactylus.fcp.PersistentGet;
-import net.pterodactylus.fcp.Priority;
-import net.pterodactylus.fcp.ReturnType;
-import net.pterodactylus.fcp.Verbosity;
-
-/**
- * A Get result result is generated by {@link HighLevelClient#getRequests()}.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class GetRequestResult extends RequestResult {
-
-       /** The PersistentGet FCP message. */
-       private final PersistentGet persistentGet;
-
-       /**
-        * Creates a new Get request result.
-        * 
-        * @param persistentGet
-        *            The PersistentGet message wrapped by this result
-        */
-       public GetRequestResult(PersistentGet persistentGet) {
-               super(persistentGet.getIdentifier());
-               this.persistentGet = persistentGet;
-       }
-
-       /**
-        * Returns the client token associated with the request.
-        * 
-        * @return The client token
-        * @see net.pterodactylus.fcp.PersistentGet#getClientToken()
-        */
-       public String getClientToken() {
-               return persistentGet.getClientToken();
-       }
-
-       /**
-        * Returns the filename of the request.
-        * 
-        * @return The filename
-        * @see net.pterodactylus.fcp.PersistentGet#getFilename()
-        */
-       public String getFilename() {
-               return persistentGet.getFilename();
-       }
-
-       /**
-        * Returns the maximum number of retries for the request.
-        * 
-        * @return The maximum number of retries
-        * @see net.pterodactylus.fcp.PersistentGet#getMaxRetries()
-        */
-       public int getMaxRetries() {
-               return persistentGet.getMaxRetries();
-       }
-
-       /**
-        * Returns the persistence level of the request
-        * 
-        * @return The persistence level
-        * @see net.pterodactylus.fcp.PersistentGet#getPersistence()
-        */
-       public Persistence getPersistence() {
-               return persistentGet.getPersistence();
-       }
-
-       /**
-        * Returns the priority of the request.
-        * 
-        * @return The priority
-        * @see net.pterodactylus.fcp.PersistentGet#getPriority()
-        */
-       public Priority getPriority() {
-               return persistentGet.getPriority();
-       }
-
-       /**
-        * Returns the return type of the request.
-        * 
-        * @return The return type of the request
-        * @see net.pterodactylus.fcp.PersistentGet#getReturnType()
-        */
-       public ReturnType getReturnType() {
-               return persistentGet.getReturnType();
-       }
-
-       /**
-        * Returns the temporary filename of the request.
-        * 
-        * @return The temporary filename
-        * @see net.pterodactylus.fcp.PersistentGet#getTempFilename()
-        */
-       public String getTempFilename() {
-               return persistentGet.getTempFilename();
-       }
-
-       /**
-        * Returns the URI of the request.
-        * 
-        * @return The URI of the request
-        * @see net.pterodactylus.fcp.PersistentGet#getURI()
-        */
-       public String getURI() {
-               return persistentGet.getURI();
-       }
-
-       /**
-        * Returns the verbosity of the request.
-        * 
-        * @return The verbosity of the request
-        * @see net.pterodactylus.fcp.PersistentGet#getVerbosity()
-        */
-       public Verbosity getVerbosity() {
-               return persistentGet.getVerbosity();
-       }
-
-       /**
-        * Returns whether this request is on the global queue.
-        * 
-        * @return <code>true</code> if the request is on the global queue,
-        *         <code>false</code> if it is on the client-local queue
-        * @see net.pterodactylus.fcp.PersistentGet#isGlobal()
-        */
-       public boolean isGlobal() {
-               return persistentGet.isGlobal();
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelCallback.java b/src/net/pterodactylus/fcp/highlevel/HighLevelCallback.java
deleted file mode 100644 (file)
index 7dc55df..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * fcplib - HighLevelCallback.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.fcp.highlevel;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * A callback is used to notify users of the {@link HighLevelClient} that an
- * operation was completed.
- * 
- * @param <R>
- *            The type of the high-level operation result
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class HighLevelCallback<R extends HighLevelResult> {
-
-       /** Object used for synchronization. */
-       protected final Object syncObject = new Object();
-
-       /** The list of callback listeners. */
-       private final List<HighLevelCallbackListener<R>> highLevelCallbackListeners = Collections.synchronizedList(new ArrayList<HighLevelCallbackListener<R>>());
-
-       /** Whether the result is complete. */
-       protected boolean resultComplete = false;
-
-       /** The result of the operation. */
-       private R result = null;
-
-       /**
-        * Package-private construtor.
-        * 
-        * @param result
-        *            The result of the operation
-        */
-       HighLevelCallback(R result) {
-               this.result = result;
-       }
-
-       /**
-        * Adds a callback listener to this callback. The callback listener will be
-        * called as soon as the result of the operation is known. If the result is
-        * already known, the listener will be called immediately. Also, as soon as
-        * a listener was notified the listener is automatically removed from this
-        * callback.
-        * 
-        * @param highLevelCallbackListener
-        *            The listener to add
-        */
-       public void addHighLevelCallbackListener(HighLevelCallbackListener<R> highLevelCallbackListener) {
-               highLevelCallbackListeners.add(highLevelCallbackListener);
-               if (isDone()) {
-                       fireGotResult();
-               }
-       }
-
-       /**
-        * Removes a callback listener from this callback.
-        * 
-        * @param highLevelCallbackListener
-        *            The listener to remove
-        */
-       public void removeHighLevelCallbackListener(HighLevelCallbackListener<R> highLevelCallbackListener) {
-               highLevelCallbackListeners.remove(highLevelCallbackListener);
-       }
-
-       /**
-        * Notifies all listeners that the result of the operation is now known. As
-        * soon as a listener was notified it will be removed from the list of
-        * listeners!
-        * 
-        * @see HighLevelCallbackListener#gotResult(HighLevelCallback)
-        */
-       private synchronized void fireGotResult() {
-               for (HighLevelCallbackListener<R> highLevelCallbackListener: highLevelCallbackListeners) {
-                       highLevelCallbackListener.gotResult(this);
-               }
-               highLevelCallbackListeners.clear();
-       }
-
-       /**
-        * Returns whether the result of the operation is already known. If the
-        * result is already known a call to {@link #getResult()} will not block.
-        * 
-        * @return <code>true</code> if the result is already known,
-        *         <code>false</code> otherwise
-        */
-       public boolean isDone() {
-               synchronized (syncObject) {
-                       return resultComplete;
-               }
-       }
-
-       /**
-        * Returns the result of the operation, blocking until it is known.
-        * 
-        * @return The result of the operation
-        * @throws InterruptedException
-        *             if {@link Object#wait()} was interrupted
-        */
-       public R getResult() throws InterruptedException {
-               return getResult(0);
-       }
-
-       /**
-        * Returns the result of the operation, blocking until it is known or the
-        * given time (in milliseconds) has passed.
-        * 
-        * @param waitTime
-        *            The time to wait for a result
-        * @return The result of the operation, or <code>null</code> if the result
-        *         is still not known after <code>waitTime</code> milliseconds
-        *         have passed
-        * @throws InterruptedException
-        *             if {@link Object#wait()} is interrupted
-        */
-       public R getResult(long waitTime) throws InterruptedException {
-               synchronized (syncObject) {
-                       while (!resultComplete) {
-                               syncObject.wait(waitTime);
-                       }
-                       return result;
-               }
-       }
-
-       /**
-        * Returns the result even if it is not yet complete.
-        * 
-        * @return The result of the operation
-        */
-       R getIntermediaryResult() {
-               synchronized (syncObject) {
-                       return result;
-               }
-       }
-
-       /**
-        * Marks the result as complete and notify the listeners. If the result was
-        * already complete, nothing will be done.
-        */
-       void setDone() {
-               synchronized (syncObject) {
-                       if (resultComplete) {
-                               return;
-                       }
-                       resultComplete = true;
-                       syncObject.notifyAll();
-               }
-               fireGotResult();
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelCallbackListener.java b/src/net/pterodactylus/fcp/highlevel/HighLevelCallbackListener.java
deleted file mode 100644 (file)
index c40c895..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * fcplib - HighLevelCallbackListener.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.fcp.highlevel;
-
-import java.util.EventListener;
-
-/**
- * Interface for objects that want to be notified as soon as a
- * {@link HighLevelCallback} received a result.
- * 
- * @param <R>
- *            The type of the high-level operation progress
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public interface HighLevelCallbackListener<R extends HighLevelResult> extends EventListener {
-
-       /**
-        * Notifies a listener that the given callback received a result. Use
-        * {@link HighLevelCallback#getResult()} to retrieve the result.
-        * 
-        * @param highLevelCallback
-        *            The callback that received a result
-        */
-       public void gotResult(HighLevelCallback<R> highLevelCallback);
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelClient.java b/src/net/pterodactylus/fcp/highlevel/HighLevelClient.java
deleted file mode 100644 (file)
index 84df83c..0000000
+++ /dev/null
@@ -1,1281 +0,0 @@
-/*
- * fcplib - HighLevelClient.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.fcp.highlevel;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.URL;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import net.pterodactylus.fcp.AddPeer;
-import net.pterodactylus.fcp.AllData;
-import net.pterodactylus.fcp.ClientGet;
-import net.pterodactylus.fcp.ClientHello;
-import net.pterodactylus.fcp.CloseConnectionDuplicateClientName;
-import net.pterodactylus.fcp.ConfigData;
-import net.pterodactylus.fcp.DataFound;
-import net.pterodactylus.fcp.EndListPeerNotes;
-import net.pterodactylus.fcp.EndListPeers;
-import net.pterodactylus.fcp.EndListPersistentRequests;
-import net.pterodactylus.fcp.FCPPluginReply;
-import net.pterodactylus.fcp.FcpConnection;
-import net.pterodactylus.fcp.FcpListener;
-import net.pterodactylus.fcp.FcpMessage;
-import net.pterodactylus.fcp.FcpUtils;
-import net.pterodactylus.fcp.FinishedCompression;
-import net.pterodactylus.fcp.GenerateSSK;
-import net.pterodactylus.fcp.GetFailed;
-import net.pterodactylus.fcp.IdentifierCollision;
-import net.pterodactylus.fcp.ListPeers;
-import net.pterodactylus.fcp.ListPersistentRequests;
-import net.pterodactylus.fcp.NodeData;
-import net.pterodactylus.fcp.NodeHello;
-import net.pterodactylus.fcp.NodeRef;
-import net.pterodactylus.fcp.Peer;
-import net.pterodactylus.fcp.PeerNote;
-import net.pterodactylus.fcp.PeerRemoved;
-import net.pterodactylus.fcp.PersistentGet;
-import net.pterodactylus.fcp.PersistentPut;
-import net.pterodactylus.fcp.PersistentPutDir;
-import net.pterodactylus.fcp.PersistentRequestModified;
-import net.pterodactylus.fcp.PersistentRequestRemoved;
-import net.pterodactylus.fcp.PluginInfo;
-import net.pterodactylus.fcp.ProtocolError;
-import net.pterodactylus.fcp.PutFailed;
-import net.pterodactylus.fcp.PutFetchable;
-import net.pterodactylus.fcp.PutSuccessful;
-import net.pterodactylus.fcp.ReturnType;
-import net.pterodactylus.fcp.SSKKeypair;
-import net.pterodactylus.fcp.SimpleProgress;
-import net.pterodactylus.fcp.StartedCompression;
-import net.pterodactylus.fcp.SubscribedUSKUpdate;
-import net.pterodactylus.fcp.TestDDAComplete;
-import net.pterodactylus.fcp.TestDDAReply;
-import net.pterodactylus.fcp.TestDDARequest;
-import net.pterodactylus.fcp.TestDDAResponse;
-import net.pterodactylus.fcp.URIGenerated;
-import net.pterodactylus.fcp.UnknownNodeIdentifier;
-import net.pterodactylus.fcp.UnknownPeerNoteType;
-import net.pterodactylus.fcp.WatchGlobal;
-
-/**
- * A high-level client that allows simple yet full-featured access to a Freenet
- * node.
- *
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class HighLevelClient {
-
-       /** Logger. */
-       private static final Logger logger = Logger.getLogger(HighLevelClient.class.getName());
-
-       /** Object for internal synchronization. */
-       private final Object syncObject = new Object();
-
-       /** The name of the client. */
-       private final String clientName;
-
-       /** The FCP connection to the node. */
-       private FcpConnection fcpConnection = null;
-
-       /** Listeners for high-level client events. */
-       private List<HighLevelClientListener> highLevelClientListeners = Collections.synchronizedList(new ArrayList<HighLevelClientListener>());
-
-       /** The listener for the connection. */
-       private HighLevelClientFcpListener highLevelClientFcpListener = new HighLevelClientFcpListener();
-
-       /** The listeners for progress events. */
-       private List<HighLevelProgressListener> highLevelProgressListeners = Collections.synchronizedList(new ArrayList<HighLevelProgressListener>());
-
-       /** The callback for {@link #connect(String)}. */
-       private HighLevelCallback<ConnectResult> connectCallback;
-
-       /** Mapping from request identifiers to callbacks. */
-       private Map<String, HighLevelCallback<KeyGenerationResult>> keyGenerationCallbacks = Collections.synchronizedMap(new HashMap<String, HighLevelCallback<KeyGenerationResult>>());
-
-       /** Mapping from request identifier to peer list callbacks. */
-       private Map<String, HighLevelCallback<PeerListResult>> peerListCallbacks = Collections.synchronizedMap(new HashMap<String, HighLevelCallback<PeerListResult>>());
-
-       /** Mapping from request identifier to peer callbacks. */
-       private Map<String, HighLevelCallback<PeerResult>> peerCallbacks = Collections.synchronizedMap(new HashMap<String, HighLevelCallback<PeerResult>>());
-
-       /** Mapping from directories to DDA callbacks. */
-       private Map<String, HighLevelCallback<DirectDiskAccessResult>> directDiskAccessCallbacks = Collections.synchronizedMap(new HashMap<String, HighLevelCallback<DirectDiskAccessResult>>());
-
-       /** Mapping from request identifiers to download callbacks. */
-       private Map<String, HighLevelProgressCallback<DownloadResult>> downloadCallbacks = Collections.synchronizedMap(new HashMap<String, HighLevelProgressCallback<DownloadResult>>());
-
-       /** The callback for {@link #getRequests()}. */
-       private HighLevelCallback<RequestListResult> requestListCallback;
-
-       /**
-        * Creates a new high-level client that connects to a node on
-        * <code>localhost</code>.
-        *
-        * @param clientName
-        *            The name of the client
-        */
-       public HighLevelClient(String clientName) {
-               this.clientName = clientName;
-       }
-
-       //
-       // EVENT MANAGEMENT
-       //
-
-       /**
-        * Adds the given high-level client listener to list of listeners.
-        *
-        * @param highLevelClientListener
-        *            The listener to add
-        */
-       public void addHighLevelClientListener(HighLevelClientListener highLevelClientListener) {
-               highLevelClientListeners.add(highLevelClientListener);
-       }
-
-       /**
-        * Removes the given high-level client listener from the list of listeners.
-        *
-        * @param highLevelClientListener
-        *            The listener to remove
-        */
-       public void removeHighLevelClientListener(HighLevelClientListener highLevelClientListener) {
-               highLevelClientListeners.remove(highLevelClientListener);
-       }
-
-       /**
-        * Notifies all listeners that a client has connected.
-        */
-       private void fireClientConnected() {
-               for (HighLevelClientListener highLevelClientListener : highLevelClientListeners) {
-                       highLevelClientListener.clientConnected(this);
-               }
-       }
-
-       /**
-        * Notifies all listeners that a client has disconnected.
-        *
-        * @param throwable
-        *            The exception that caused the disconnect, or <code>null</code>
-        *            if there was no exception
-        */
-       private void fireClientDisconnected(Throwable throwable) {
-               for (HighLevelClientListener highLevelClientListener : highLevelClientListeners) {
-                       highLevelClientListener.clientDisconnected(this, throwable);
-               }
-       }
-
-       /**
-        * Adds a high-level progress listener.
-        *
-        * @param highLevelProgressListener
-        *            The high-level progress listener to add
-        */
-       public void addHighLevelProgressListener(HighLevelProgressListener highLevelProgressListener) {
-               highLevelProgressListeners.add(highLevelProgressListener);
-       }
-
-       /**
-        * Removes a high-level progress listener.
-        *
-        * @param highLevelProgressListener
-        *            The high-level progress listener to remove
-        */
-       public void removeHighLevelProgressListener(HighLevelProgressListener highLevelProgressListener) {
-               highLevelProgressListeners.remove(highLevelProgressListener);
-       }
-
-       /**
-        * Notifies all listeners that the request with the given identifier made
-        * some progress.
-        *
-        * @param identifier
-        *            The identifier of the request
-        * @param highLevelProgress
-        *            The progress of the request
-        */
-       private void fireProgressReceived(String identifier, HighLevelProgress highLevelProgress) {
-               for (HighLevelProgressListener highLevelProgressListener : highLevelProgressListeners) {
-                       highLevelProgressListener.progressReceived(this, identifier, highLevelProgress);
-               }
-       }
-
-       //
-       // ACCESSORS
-       //
-
-       /**
-        * Returns the FCP connection that backs this high-level client. This method
-        * should be used with care as fiddling around with the FCP connection can
-        * easily break the high-level client if you don’t know what you’re doing!
-        *
-        * @return The FCP connection of this client
-        */
-       public FcpConnection getFcpConnection() {
-               return fcpConnection;
-       }
-
-       /**
-        * Returns whether the node is connected.
-        *
-        * @return <code>true</code> if the node is currently connected,
-        *         <code>false</code> otherwise
-        */
-       public boolean isConnected() {
-               return fcpConnection != null;
-       }
-
-       //
-       // ACTIONS
-       //
-
-       /**
-        * Connects the client.
-        *
-        * @param hostname
-        *            The hostname of the node
-        * @return A callback with a connection result
-        * @throws UnknownHostException
-        *             if the hostname can not be resolved
-        * @throws IOException
-        *             if an I/O error occurs communicating with the node
-        */
-       public HighLevelCallback<ConnectResult> connect(String hostname) throws UnknownHostException, IOException {
-               return connect(hostname, 9481);
-       }
-
-       /**
-        * Connects the client.
-        *
-        * @param hostname
-        *            The hostname of the node
-        * @param port
-        *            The port number of the node
-        * @return A callback with a connection result
-        * @throws UnknownHostException
-        *             if the hostname can not be resolved
-        * @throws IOException
-        *             if an I/O error occurs communicating with the node
-        */
-       public HighLevelCallback<ConnectResult> connect(String hostname, int port) throws UnknownHostException, IOException {
-               return connect(InetAddress.getByName(hostname), port);
-       }
-
-       /**
-        * Connects the client.
-        *
-        * @param address
-        *            The address of the node
-        * @param port
-        *            The port number of the node
-        * @return A callback with a connection result
-        * @throws IOException
-        *             if an I/O error occurs communicating with the node
-        */
-       public HighLevelCallback<ConnectResult> connect(InetAddress address, int port) throws IOException {
-               try {
-                       synchronized (this) {
-                               fcpConnection = new FcpConnection(address, port);
-                       }
-                       fcpConnection.addFcpListener(highLevelClientFcpListener);
-                       fcpConnection.connect();
-                       ClientHello clientHello = new ClientHello(clientName);
-                       connectCallback = new HighLevelCallback<ConnectResult>(new ConnectResult());
-                       fcpConnection.sendMessage(clientHello);
-                       return connectCallback;
-               } catch (IOException ioe1) {
-                       fcpConnection = null;
-                       throw ioe1;
-               }
-       }
-
-       /**
-        * Disconnects the client from the node.
-        */
-       public void disconnect() {
-               disconnect(null);
-       }
-
-       /**
-        * Generates a new SSK keypair.
-        *
-        * @return A callback with the keypair
-        * @throws IOException
-        *             if an I/O error occurs communicating with the node
-        * @throws HighLevelException
-        *             if the client is not connected
-        */
-       public HighLevelCallback<KeyGenerationResult> generateKey() throws IOException, HighLevelException {
-               checkConnection();
-               String identifier = generateIdentifier("generateSSK");
-               GenerateSSK generateSSK = new GenerateSSK(identifier);
-               HighLevelCallback<KeyGenerationResult> keyGenerationCallback = new HighLevelCallback<KeyGenerationResult>(new KeyGenerationResult(identifier));
-               keyGenerationCallbacks.put(identifier, keyGenerationCallback);
-               fcpConnection.sendMessage(generateSSK);
-               return keyGenerationCallback;
-       }
-
-       /**
-        * Sets whether to watch the global queue.
-        *
-        * @param enabled
-        *            <code>true</code> to watch the global queue in addition to the
-        *            client-local queue, <code>false</code> to only watch the
-        *            client-local queue
-        * @throws IOException
-        *             if an I/O error occurs communicating with the node
-        * @throws HighLevelException
-        *             if the client is not connected
-        */
-       public void setWatchGlobal(boolean enabled) throws IOException, HighLevelException {
-               checkConnection();
-               WatchGlobal watchGlobal = new WatchGlobal(enabled);
-               fcpConnection.sendMessage(watchGlobal);
-       }
-
-       /**
-        * Gets a list of all peers from the node.
-        *
-        * @return A callback with the peer list
-        * @throws IOException
-        *             if an I/O error occurs with the node
-        * @throws HighLevelException
-        *             if the client is not connected
-        */
-       public HighLevelCallback<PeerListResult> getPeers() throws IOException, HighLevelException {
-               checkConnection();
-               String identifier = generateIdentifier("listPeers");
-               ListPeers listPeers = new ListPeers(identifier, true, true);
-               HighLevelCallback<PeerListResult> peerListCallback = new HighLevelCallback<PeerListResult>(new PeerListResult(identifier));
-               peerListCallbacks.put(identifier, peerListCallback);
-               fcpConnection.sendMessage(listPeers);
-               return peerListCallback;
-       }
-
-       /**
-        * Adds the peer whose noderef is stored in the given file.
-        *
-        * @param nodeRefFile
-        *            The name of the file the peer’s noderef is stored in
-        * @return A peer callback
-        * @throws IOException
-        *             if an I/O error occurs communicating with the node
-        * @throws HighLevelException
-        *             if the client is not connected
-        */
-       public HighLevelCallback<PeerResult> addPeer(String nodeRefFile) throws IOException, HighLevelException {
-               checkConnection();
-               String identifier = generateIdentifier("addPeer");
-               AddPeer addPeer = new AddPeer(nodeRefFile);
-               HighLevelCallback<PeerResult> peerCallback = new HighLevelCallback<PeerResult>(new PeerResult(identifier));
-               peerCallbacks.put(identifier, peerCallback);
-               fcpConnection.sendMessage(addPeer);
-               return peerCallback;
-       }
-
-       /**
-        * Adds the peer whose noderef is stored in the given file.
-        *
-        * @param nodeRefURL
-        *            The URL where the peer’s noderef is stored
-        * @return A peer callback
-        * @throws IOException
-        *             if an I/O error occurs communicating with the node
-        * @throws HighLevelException
-        *             if the client is not connected
-        */
-       public HighLevelCallback<PeerResult> addPeer(URL nodeRefURL) throws IOException, HighLevelException {
-               checkConnection();
-               String identifier = generateIdentifier("addPeer");
-               AddPeer addPeer = new AddPeer(nodeRefURL);
-               HighLevelCallback<PeerResult> peerCallback = new HighLevelCallback<PeerResult>(new PeerResult(identifier));
-               peerCallbacks.put(identifier, peerCallback);
-               fcpConnection.sendMessage(addPeer);
-               return peerCallback;
-       }
-
-       /**
-        * Adds the peer whose noderef is stored in the given file.
-        *
-        * @param nodeRef
-        *            The peer’s noderef
-        * @return A peer callback
-        * @throws IOException
-        *             if an I/O error occurs communicating with the node
-        * @throws HighLevelException
-        *             if the client is not connected
-        */
-       public HighLevelCallback<PeerResult> addPeer(NodeRef nodeRef) throws IOException, HighLevelException {
-               checkConnection();
-               String identifier = generateIdentifier("addPeer");
-               AddPeer addPeer = new AddPeer(nodeRef);
-               HighLevelCallback<PeerResult> peerCallback = new HighLevelCallback<PeerResult>(new PeerResult(identifier));
-               peerCallbacks.put(identifier, peerCallback);
-               fcpConnection.sendMessage(addPeer);
-               return peerCallback;
-       }
-
-       /**
-        * Checks whether direct disk access for the given directory is possible.
-        * You have to perform this check before you can upload or download anything
-        * from or the disk directly!
-        *
-        * @param directory
-        *            The directory to check
-        * @param wantRead
-        *            Whether you want to read the given directory
-        * @param wantWrite
-        *            Whether you want to write to the given directory
-        * @return A direct disk access callback
-        * @throws IOException
-        *             if an I/O error occurs communicating with the node
-        * @throws HighLevelException
-        *             if the client is not connected
-        */
-       public HighLevelCallback<DirectDiskAccessResult> checkDirectDiskAccess(String directory, boolean wantRead, boolean wantWrite) throws IOException, HighLevelException {
-               checkConnection();
-               TestDDARequest testDDARequest = new TestDDARequest(directory, wantRead, wantWrite);
-               HighLevelCallback<DirectDiskAccessResult> directDiskAccessCallback = new HighLevelCallback<DirectDiskAccessResult>(new DirectDiskAccessResult(directory));
-               directDiskAccessCallbacks.put(directory, directDiskAccessCallback);
-               fcpConnection.sendMessage(testDDARequest);
-               return directDiskAccessCallback;
-       }
-
-       /**
-        * Starts a download. Files can either be download to disk or streamed from
-        * the node. When downloading to disk you have to perform a direct disk
-        * access check for the directory you want to put the downloaded file in!
-        *
-        * @see #checkDirectDiskAccess(String, boolean, boolean)
-        * @param uri
-        *            The URI to get
-        * @param filename
-        *            The filename to save the data to, or <code>null</code> to
-        *            retrieve the data as InputStream from the
-        *            {@link DownloadResult}
-        * @param global
-        *            Whether to put the download on the global queue
-        * @return A download result
-        * @throws IOException
-        *             if an I/O error occurs communicating with the node
-        * @throws HighLevelException
-        *             if the client is not connected
-        */
-       public HighLevelProgressCallback<DownloadResult> download(String uri, String filename, boolean global) throws IOException, HighLevelException {
-               checkConnection();
-               String identifier = generateIdentifier("download");
-               ClientGet clientGet = new ClientGet(uri, identifier, (filename == null) ? ReturnType.direct : ReturnType.disk);
-               clientGet.setGlobal(global);
-               HighLevelProgressCallback<DownloadResult> downloadCallback = new HighLevelProgressCallback<DownloadResult>(new DownloadResult(identifier));
-               downloadCallbacks.put(identifier, downloadCallback);
-               fcpConnection.sendMessage(clientGet);
-               return downloadCallback;
-       }
-
-       /**
-        * Requests a list of all running requests from the node.
-        *
-        * @return The request list result
-        * @throws IOException
-        *             if an I/O errors communicating with the node
-        * @throws HighLevelException
-        *             if the client is not connected
-        */
-       public HighLevelCallback<RequestListResult> getRequests() throws IOException, HighLevelException {
-               checkConnection();
-               String identifier = generateIdentifier("list-persistent-requests");
-               ListPersistentRequests listPersistentRequests = new ListPersistentRequests();
-               synchronized (syncObject) {
-                       if (requestListCallback != null) {
-                               logger.log(Level.SEVERE, "getRequests() called with request still running!");
-                       }
-                       requestListCallback = new HighLevelCallback<RequestListResult>(new RequestListResult(identifier));
-               }
-               fcpConnection.sendMessage(listPersistentRequests);
-               return requestListCallback;
-       }
-
-       //
-       // PRIVATE METHODS
-       //
-
-       /**
-        * Checks whether the client is already connected and throws an exception if
-        * it is not.
-        *
-        * @throws NotConnectedException
-        *             if the client is not connected
-        */
-       private void checkConnection() throws NotConnectedException {
-               synchronized (this) {
-                       if (fcpConnection == null) {
-                               throw new NotConnectedException("client is not connected");
-                       }
-               }
-       }
-
-       /**
-        * Generates an identifier for the given function.
-        *
-        * @param function
-        *            The name of the function
-        * @return An identifier
-        */
-       private String generateIdentifier(String function) {
-               return "jFCPlib-" + function + "-" + System.currentTimeMillis();
-       }
-
-       /**
-        * Disconnects the client from the node, handing the given Throwable to
-        * {@link #fireClientDisconnected(Throwable)}.
-        *
-        * @param throwable
-        *            The exception that caused the disconnect, or <code>null</code>
-        *            if there was no exception
-        */
-       private void disconnect(Throwable throwable) {
-               if (fcpConnection != null) {
-                       fcpConnection.close();
-               }
-               fcpConnection = null;
-       }
-
-       /**
-        * FCP listener for {@link HighLevelClient}.
-        *
-        * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
-        */
-       private class HighLevelClientFcpListener implements FcpListener {
-
-               /** Mapping from directory to written file (for cleanup). */
-               private final Map<DirectDiskAccessResult, String> writtenFiles = new HashMap<DirectDiskAccessResult, String>();
-
-               /**
-                * Creates a new FCP listener for {@link HighLevelClient}.
-                */
-               HighLevelClientFcpListener() {
-                       /* do nothing. */
-               }
-
-               //
-               // PRIVATE METHODS
-               //
-
-               /**
-                * Searches all callback collections for a callback with the given
-                * identifier and cancels it.
-                *
-                * @param identifier
-                *            The identifier to search for, or <code>null</code> to
-                *            cancel all pending requests
-                */
-               @SuppressWarnings("synthetic-access")
-               private void cancelIdentifier(String identifier) {
-                       synchronized (syncObject) {
-                               if (connectCallback != null) {
-                                       connectCallback.getIntermediaryResult().setFailed(true);
-                                       connectCallback.setDone();
-                                       connectCallback = null;
-                               }
-                               if (requestListCallback != null) {
-                                       requestListCallback.getIntermediaryResult().setFailed(true);
-                                       requestListCallback.setDone();
-                                       requestListCallback = null;
-                               }
-                       }
-                       if (identifier == null) {
-                               /* key generation callbacks */
-                               for (Entry<String, HighLevelCallback<KeyGenerationResult>> keyGenerationEntry : keyGenerationCallbacks.entrySet()) {
-                                       keyGenerationEntry.getValue().getIntermediaryResult().setFailed(true);
-                                       keyGenerationEntry.getValue().setDone();
-                               }
-                               keyGenerationCallbacks.clear();
-                               /* peer list callbacks. */
-                               for (Entry<String, HighLevelCallback<PeerListResult>> peerListEntry : peerListCallbacks.entrySet()) {
-                                       peerListEntry.getValue().getIntermediaryResult().setFailed(true);
-                                       peerListEntry.getValue().setDone();
-                               }
-                               peerListCallbacks.clear();
-                               /* peer callbacks. */
-                               for (Entry<String, HighLevelCallback<PeerResult>> peerEntry : peerCallbacks.entrySet()) {
-                                       peerEntry.getValue().getIntermediaryResult().setFailed(true);
-                                       peerEntry.getValue().setDone();
-                               }
-                               peerCallbacks.clear();
-                               /* direct disk access callbacks. */
-                               for (Entry<String, HighLevelCallback<DirectDiskAccessResult>> directDiskAccessEntry : directDiskAccessCallbacks.entrySet()) {
-                                       directDiskAccessEntry.getValue().getIntermediaryResult().setFailed(true);
-                                       directDiskAccessEntry.getValue().setDone();
-                               }
-                               directDiskAccessCallbacks.clear();
-                               /* download callbacks. */
-                               for (Entry<String, HighLevelProgressCallback<DownloadResult>> downloadEntry : downloadCallbacks.entrySet()) {
-                                       downloadEntry.getValue().getIntermediaryResult().setFailed(true);
-                                       downloadEntry.getValue().setDone();
-                               }
-                               downloadCallbacks.clear();
-                       } else {
-                               HighLevelCallback<KeyGenerationResult> keyGenerationCallback = keyGenerationCallbacks.remove(identifier);
-                               if (keyGenerationCallback != null) {
-                                       keyGenerationCallback.getIntermediaryResult().setFailed(true);
-                                       keyGenerationCallback.setDone();
-                                       return;
-                               }
-                               HighLevelCallback<PeerListResult> peerListCallback = peerListCallbacks.remove(identifier);
-                               if (peerListCallback != null) {
-                                       peerListCallback.getIntermediaryResult().setFailed(true);
-                                       peerListCallback.setDone();
-                                       return;
-                               }
-                               HighLevelCallback<PeerResult> peerCallback = peerCallbacks.remove(identifier);
-                               if (peerCallback != null) {
-                                       peerCallback.getIntermediaryResult().setFailed(true);
-                                       peerCallback.setDone();
-                                       return;
-                               }
-                               HighLevelCallback<DirectDiskAccessResult> directDiskAccessCallback = directDiskAccessCallbacks.remove(identifier);
-                               if (directDiskAccessCallback != null) {
-                                       directDiskAccessCallback.getIntermediaryResult().setFailed(true);
-                                       directDiskAccessCallback.setDone();
-                                       return;
-                               }
-                               HighLevelProgressCallback<DownloadResult> downloadCallback = downloadCallbacks.remove(identifier);
-                               if (downloadCallback != null) {
-                                       downloadCallback.getIntermediaryResult().setFailed(true);
-                                       downloadCallback.setDone();
-                                       return;
-                               }
-                       }
-               }
-
-               /**
-                * Reads the given file and returns the first line of the file.
-                *
-                * @param readFilename
-                *            The name of the file to read
-                * @return The content of the file
-                */
-               private String readContent(String readFilename) {
-                       if (readFilename == null) {
-                               return null;
-                       }
-                       FileReader fileReader = null;
-                       BufferedReader bufferedFileReader = null;
-                       try {
-                               fileReader = new FileReader(readFilename);
-                               bufferedFileReader = new BufferedReader(fileReader);
-                               String content = bufferedFileReader.readLine();
-                               return content;
-                       } catch (IOException ioe1) {
-                               /* swallow. */
-                       } finally {
-                               FcpUtils.close(bufferedFileReader);
-                               FcpUtils.close(fileReader);
-                       }
-                       return null;
-               }
-
-               /**
-                * Writes the given content to the given file.
-                *
-                * @param directDiskAccessResult
-                *            The DDA result
-                * @param writeFilename
-                *            The name of the file to write to
-                * @param writeContent
-                *            The content to write to the file
-                */
-               private void writeContent(DirectDiskAccessResult directDiskAccessResult, String writeFilename, String writeContent) {
-                       if ((writeFilename == null) || (writeContent == null)) {
-                               return;
-                       }
-                       writtenFiles.put(directDiskAccessResult, writeFilename);
-                       FileWriter fileWriter = null;
-                       try {
-                               fileWriter = new FileWriter(writeFilename);
-                               fileWriter.write(writeContent);
-                       } catch (IOException ioe1) {
-                               /* swallow. */
-                       } finally {
-                               FcpUtils.close(fileWriter);
-                       }
-               }
-
-               /**
-                * Cleans up any files that written for the given result.
-                *
-                * @param directDiskAccessResult
-                *            The direct disk access result
-                */
-               @SuppressWarnings("synthetic-access")
-               private void cleanFiles(DirectDiskAccessResult directDiskAccessResult) {
-                       String writeFilename = writtenFiles.remove(directDiskAccessResult);
-                       if (writeFilename != null) {
-                               if (!new File(writeFilename).delete()) {
-                                       logger.warning("could not delete " + writeFilename);
-                               }
-                       }
-               }
-
-               //
-               // INTERFACE FcpListener
-               //
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#connectionClosed(net.pterodactylus.fcp.FcpConnection,
-                *      Throwable)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void connectionClosed(FcpConnection fcpConnection, Throwable throwable) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       cancelIdentifier(null);
-                       disconnect(throwable);
-                       fireClientDisconnected(throwable);
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedAllData(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.AllData)
-                */
-               public void receivedAllData(FcpConnection fcpConnection, AllData allData) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedCloseConnectionDuplicateClientName(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.CloseConnectionDuplicateClientName)
-                */
-               public void receivedCloseConnectionDuplicateClientName(FcpConnection fcpConnection, CloseConnectionDuplicateClientName closeConnectionDuplicateClientName) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedConfigData(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.ConfigData)
-                */
-               public void receivedConfigData(FcpConnection fcpConnection, ConfigData configData) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedDataFound(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.DataFound)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedDataFound(FcpConnection fcpConnection, DataFound dataFound) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String identifier = dataFound.getIdentifier();
-                       HighLevelProgressCallback<DownloadResult> downloadCallback = downloadCallbacks.get(identifier);
-                       if (downloadCallback != null) {
-                               DownloadResult downloadResult = downloadCallback.getIntermediaryResult();
-                               downloadResult.setFinished(true);
-                               downloadResult.setFailed(false);
-                               downloadCallback.progressUpdated();
-                               downloadCallback.setDone();
-                       }
-                       HighLevelProgress highLevelProgress = new HighLevelProgress(identifier, true);
-                       fireProgressReceived(identifier, highLevelProgress);
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedEndListPeerNotes(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.EndListPeerNotes)
-                */
-               public void receivedEndListPeerNotes(FcpConnection fcpConnection, EndListPeerNotes endListPeerNotes) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedEndListPeers(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.EndListPeers)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedEndListPeers(FcpConnection fcpConnection, EndListPeers endListPeers) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String identifier = endListPeers.getIdentifier();
-                       HighLevelCallback<PeerListResult> peerListCallback = peerListCallbacks.remove(identifier);
-                       if (peerListCallback == null) {
-                               return;
-                       }
-                       peerListCallback.setDone();
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedEndListPersistentRequests(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.EndListPersistentRequests)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedEndListPersistentRequests(FcpConnection fcpConnection, EndListPersistentRequests endListPersistentRequests) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       synchronized (syncObject) {
-                               if (HighLevelClient.this.requestListCallback == null) {
-                                       logger.log(Level.WARNING, "got EndListPersistentRequests without running request!");
-                                       return;
-                               }
-                               requestListCallback.setDone();
-                               requestListCallback = null;
-                       }
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedFCPPluginReply(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.FCPPluginReply)
-                */
-               public void receivedFCPPluginReply(FcpConnection fcpConnection, FCPPluginReply fcpPluginReply) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedGetFailed(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.GetFailed)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedGetFailed(FcpConnection fcpConnection, GetFailed getFailed) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String identifier = getFailed.getIdentifier();
-                       HighLevelProgressCallback<DownloadResult> downloadCallback = downloadCallbacks.remove(identifier);
-                       if (downloadCallback != null) {
-                               DownloadResult downloadResult = downloadCallback.getIntermediaryResult();
-                               downloadResult.setFailed(true);
-                               downloadResult.setFinished(true);
-                               downloadCallback.setDone();
-                               return;
-                       }
-                       /* unknown identifier? */
-                       logger.warning("unknown identifier for GetFailed: " + identifier);
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedIdentifierCollision(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.IdentifierCollision)
-                */
-               public void receivedIdentifierCollision(FcpConnection fcpConnection, IdentifierCollision identifierCollision) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedMessage(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.FcpMessage)
-                */
-               public void receivedMessage(FcpConnection fcpConnection, FcpMessage fcpMessage) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedNodeData(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.NodeData)
-                */
-               public void receivedNodeData(FcpConnection fcpConnection, NodeData nodeData) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedNodeHello(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.NodeHello)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedNodeHello(FcpConnection fcpConnection, NodeHello nodeHello) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       synchronized (syncObject) {
-                               connectCallback.getIntermediaryResult().setFailed(false);
-                               connectCallback.setDone();
-                               connectCallback = null;
-                       }
-                       fireClientConnected();
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPeer(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.Peer)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedPeer(FcpConnection fcpConnection, Peer peer) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String identifier = peer.getIdentifier();
-                       if (identifier == null) {
-                               return;
-                       }
-                       HighLevelCallback<PeerListResult> peerListCallback = peerListCallbacks.get(identifier);
-                       if (peerListCallback != null) {
-                               peerListCallback.getIntermediaryResult().addPeer(peer);
-                               return;
-                       }
-                       HighLevelCallback<PeerResult> peerResult = peerCallbacks.remove(identifier);
-                       if (peerResult != null) {
-                               peerResult.getIntermediaryResult().setPeer(peer);
-                               peerResult.setDone();
-                               return;
-                       }
-                       logger.warning("got Peer message with unknown identifier: " + identifier);
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPeerNote(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PeerNote)
-                */
-               public void receivedPeerNote(FcpConnection fcpConnection, PeerNote peerNote) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPeerRemoved(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PeerRemoved)
-                */
-               public void receivedPeerRemoved(FcpConnection fcpConnection, PeerRemoved peerRemoved) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPersistentGet(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PersistentGet)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedPersistentGet(FcpConnection fcpConnection, PersistentGet persistentGet) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       synchronized (syncObject) {
-                               if (requestListCallback != null) {
-                                       RequestListResult requestListResult = requestListCallback.getIntermediaryResult();
-                                       requestListResult.addRequestResult(new GetRequestResult(persistentGet));
-                                       return;
-                               }
-                       }
-                       String identifier = persistentGet.getIdentifier();
-                       if (downloadCallbacks.containsKey(identifier)) {
-                               /* TODO */
-                               return;
-                       }
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPersistentPut(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PersistentPut)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedPersistentPut(FcpConnection fcpConnection, PersistentPut persistentPut) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       synchronized (syncObject) {
-                               if (requestListCallback != null) {
-                                       RequestListResult requestListResult = requestListCallback.getIntermediaryResult();
-                                       requestListResult.addRequestResult(new PutRequestResult(persistentPut));
-                                       return;
-                               }
-                       }
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPersistentPutDir(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PersistentPutDir)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedPersistentPutDir(FcpConnection fcpConnection, PersistentPutDir persistentPutDir) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       synchronized (syncObject) {
-                               if (requestListCallback != null) {
-                                       RequestListResult requestListResult = requestListCallback.getIntermediaryResult();
-                                       requestListResult.addRequestResult(new PutDirRequestResult(persistentPutDir));
-                                       return;
-                               }
-                       }
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPersistentRequestModified(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PersistentRequestModified)
-                */
-               public void receivedPersistentRequestModified(FcpConnection fcpConnection, PersistentRequestModified persistentRequestModified) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPersistentRequestRemoved(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PersistentRequestRemoved)
-                */
-               public void receivedPersistentRequestRemoved(FcpConnection fcpConnection, PersistentRequestRemoved persistentRequestRemoved) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPluginInfo(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PluginInfo)
-                */
-               public void receivedPluginInfo(FcpConnection fcpConnection, PluginInfo pluginInfo) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedProtocolError(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.ProtocolError)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedProtocolError(FcpConnection fcpConnection, ProtocolError protocolError) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String identifier = protocolError.getIdentifier();
-                       if (identifier == null) {
-                               return;
-                       }
-                       cancelIdentifier(identifier);
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPutFailed(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PutFailed)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedPutFailed(FcpConnection fcpConnection, PutFailed putFailed) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String identifier = putFailed.getIdentifier();
-                       HighLevelProgressCallback<DownloadResult> downloadCallback = downloadCallbacks.get(identifier);
-                       if (downloadCallback != null) {
-                               DownloadResult downloadResult = downloadCallback.getIntermediaryResult();
-                               downloadResult.setFailed(true);
-                               downloadResult.setFinished(true);
-                               downloadCallback.progressUpdated();
-                               downloadCallback.setDone();
-                       }
-                       /* TODO - check inserts */
-                       HighLevelProgress highLevelProgress = new HighLevelProgress(identifier, true);
-                       fireProgressReceived(identifier, highLevelProgress);
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPutFetchable(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PutFetchable)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedPutFetchable(FcpConnection fcpConnection, PutFetchable putFetchable) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String identifier = putFetchable.getIdentifier();
-                       /* TODO - check inserts */
-                       HighLevelProgress highLevelProgress = new HighLevelProgress(identifier);
-                       highLevelProgress.setFetchable(true);
-                       fireProgressReceived(identifier, highLevelProgress);
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedPutSuccessful(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.PutSuccessful)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedPutSuccessful(FcpConnection fcpConnection, PutSuccessful putSuccessful) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String identifier = putSuccessful.getIdentifier();
-                       HighLevelProgressCallback<DownloadResult> downloadCallback = downloadCallbacks.get(identifier);
-                       if (downloadCallback != null) {
-                               DownloadResult downloadResult = downloadCallback.getIntermediaryResult();
-                               downloadResult.setFinished(true);
-                               downloadResult.setFailed(false);
-                               downloadCallback.progressUpdated();
-                       }
-                       /* TODO - check inserts */
-                       HighLevelProgress highLevelProgress = new HighLevelProgress(identifier, true);
-                       fireProgressReceived(identifier, highLevelProgress);
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedSSKKeypair(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.SSKKeypair)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedSSKKeypair(FcpConnection fcpConnection, SSKKeypair sskKeypair) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       HighLevelCallback<KeyGenerationResult> keyGenerationCallback = keyGenerationCallbacks.remove(sskKeypair.getIdentifier());
-                       if (keyGenerationCallback == null) {
-                               return;
-                       }
-                       KeyGenerationResult keyGenerationResult = keyGenerationCallback.getIntermediaryResult();
-                       keyGenerationResult.setInsertURI(sskKeypair.getInsertURI());
-                       keyGenerationResult.setRequestURI(sskKeypair.getRequestURI());
-                       keyGenerationCallback.setDone();
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedSimpleProgress(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.SimpleProgress)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedSimpleProgress(FcpConnection fcpConnection, SimpleProgress simpleProgress) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String identifier = simpleProgress.getIdentifier();
-                       HighLevelProgressCallback<DownloadResult> downloadCallback = downloadCallbacks.get(identifier);
-                       if (downloadCallback != null) {
-                               DownloadResult downloadResult = downloadCallback.getIntermediaryResult();
-                               downloadResult.setTotalBlocks(simpleProgress.getTotal());
-                               downloadResult.setRequiredBlocks(simpleProgress.getRequired());
-                               downloadResult.setSuccessfulBlocks(simpleProgress.getSucceeded());
-                               downloadResult.setFailedBlocks(simpleProgress.getFailed());
-                               downloadResult.setFatallyFailedBlocks(simpleProgress.getFatallyFailed());
-                               downloadResult.setTotalFinalized(simpleProgress.isFinalizedTotal());
-                               downloadCallback.progressUpdated();
-                       }
-                       /* TODO - check inserts */
-                       HighLevelProgress highLevelProgress = new HighLevelProgress(identifier, simpleProgress.getTotal(), simpleProgress.getRequired(), simpleProgress.getSucceeded(), simpleProgress.getFailed(), simpleProgress.getFatallyFailed(), simpleProgress.isFinalizedTotal());
-                       fireProgressReceived(identifier, highLevelProgress);
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedStartedCompression(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.StartedCompression)
-                */
-               public void receivedStartedCompression(FcpConnection fcpConnection, StartedCompression startedCompression) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedSubscribedUSKUpdate(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.SubscribedUSKUpdate)
-                */
-               public void receivedSubscribedUSKUpdate(FcpConnection fcpConnection, SubscribedUSKUpdate subscribedUSKUpdate) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedTestDDAComplete(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.TestDDAComplete)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedTestDDAComplete(FcpConnection fcpConnection, TestDDAComplete testDDAComplete) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String directory = testDDAComplete.getDirectory();
-                       if (directory == null) {
-                               return;
-                       }
-                       HighLevelCallback<DirectDiskAccessResult> directDiskAccessCallback = directDiskAccessCallbacks.remove(directory);
-                       DirectDiskAccessResult directDiskAccessResult = directDiskAccessCallback.getIntermediaryResult();
-                       cleanFiles(directDiskAccessResult);
-                       directDiskAccessResult.setReadAllowed(testDDAComplete.isReadDirectoryAllowed());
-                       directDiskAccessResult.setWriteAllowed(testDDAComplete.isWriteDirectoryAllowed());
-                       directDiskAccessCallback.setDone();
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedTestDDAReply(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.TestDDAReply)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedTestDDAReply(FcpConnection fcpConnection, TestDDAReply testDDAReply) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String directory = testDDAReply.getDirectory();
-                       if (directory == null) {
-                               return;
-                       }
-                       DirectDiskAccessResult directDiskAccessResult = directDiskAccessCallbacks.get(directory).getIntermediaryResult();
-                       String readFilename = testDDAReply.getReadFilename();
-                       String readContent = readContent(readFilename);
-                       String writeFilename = testDDAReply.getWriteFilename();
-                       String writeContent = testDDAReply.getContentToWrite();
-                       writeContent(directDiskAccessResult, writeFilename, writeContent);
-                       TestDDAResponse testDDAResponse = new TestDDAResponse(directory, readContent);
-                       try {
-                               fcpConnection.sendMessage(testDDAResponse);
-                       } catch (IOException e) {
-                               /* swallow. I’m verry unhappy about this. */
-                       }
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedURIGenerated(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.URIGenerated)
-                */
-               @SuppressWarnings("synthetic-access")
-               public void receivedURIGenerated(FcpConnection fcpConnection, URIGenerated uriGenerated) {
-                       if (fcpConnection != HighLevelClient.this.fcpConnection) {
-                               return;
-                       }
-                       String identifier = uriGenerated.getIdentifier();
-                       /* TODO - check inserts */
-                       HighLevelProgress highLevelProgress = new HighLevelProgress(identifier, uriGenerated.getURI());
-                       fireProgressReceived(identifier, highLevelProgress);
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedUnknownNodeIdentifier(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.UnknownNodeIdentifier)
-                */
-               public void receivedUnknownNodeIdentifier(FcpConnection fcpConnection, UnknownNodeIdentifier unknownNodeIdentifier) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receivedUnknownPeerNoteType(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.UnknownPeerNoteType)
-                */
-               public void receivedUnknownPeerNoteType(FcpConnection fcpConnection, UnknownPeerNoteType unknownPeerNoteType) {
-                       /* TODO */
-               }
-
-               /**
-                * @see net.pterodactylus.fcp.FcpListener#receviedFinishedCompression(net.pterodactylus.fcp.FcpConnection,
-                *      net.pterodactylus.fcp.FinishedCompression)
-                */
-               public void receviedFinishedCompression(FcpConnection fcpConnection, FinishedCompression finishedCompression) {
-                       /* TODO */
-               }
-
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelClientListener.java b/src/net/pterodactylus/fcp/highlevel/HighLevelClientListener.java
deleted file mode 100644 (file)
index a84c28c..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * jFCPlib-high-level-client - HighLevelClientListener.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.fcp.highlevel;
-
-import java.util.EventListener;
-
-/**
- * Interface for objects that want to be notified on certain high-level client
- * events.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public interface HighLevelClientListener extends EventListener {
-
-       /**
-        * Notifies a listener that the given high-level client was connected to the
-        * node.
-        * 
-        * @param highLevelClient
-        *            The client that was connected
-        */
-       public void clientConnected(HighLevelClient highLevelClient);
-
-       /**
-        * Notifies a listener that the given client was disconnected from the node.
-        * 
-        * @param highLevelClient
-        *            The client that was disconnected
-        * @param throwable
-        *            The exception that caused the disconnect, or <code>null</code>
-        *            if no exception occured
-        */
-       public void clientDisconnected(HighLevelClient highLevelClient, Throwable throwable);
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelException.java b/src/net/pterodactylus/fcp/highlevel/HighLevelException.java
deleted file mode 100644 (file)
index bed3ad5..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * 
- */
-
-package net.pterodactylus.fcp.highlevel;
-
-/**
- * Base exception for high-level client exceptions.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class HighLevelException extends Exception {
-
-       /**
-        * Creates a new high-level client exception.
-        */
-       public HighLevelException() {
-               super();
-       }
-
-       /**
-        * Creates a new high-level client exception with the given message.
-        * 
-        * @param message
-        *            The message of the exception
-        */
-       public HighLevelException(String message) {
-               super(message);
-       }
-
-       /**
-        * Creates a new high-level client exception with the given cause.
-        * 
-        * @param cause
-        *            The cause of the exception
-        */
-       public HighLevelException(Throwable cause) {
-               super(cause);
-       }
-
-       /**
-        * Creates a new high-level client exception with the given message and
-        * cause.
-        * 
-        * @param message
-        *            The message of the exception
-        * @param cause
-        *            The cause of the exception
-        */
-       public HighLevelException(String message, Throwable cause) {
-               super(message, cause);
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelProgress.java b/src/net/pterodactylus/fcp/highlevel/HighLevelProgress.java
deleted file mode 100644 (file)
index 6a71de6..0000000
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * jFCPlib-high-level-client - HighLevelContinuosResult.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.fcp.highlevel;
-
-/**
- * Result for operations that send progress messages until they have completed.
- * The fields of the progress message has to be checked in given order because
- * if you receive this progress asynchronously via a
- * {@link HighLevelProgressListener} the progress will not have any state, you
- * will simply get the latest results, with other fields unset. First you should
- * check whether {@link #isFinished()} returns <code>true</code>. If it does,
- * the request is finished and {@link #isFailed()} will tell you whether the
- * request has failed or succeeded. Other fields are not set. If the request is
- * not yet finished, {@link #isFetchable()} will tell you whether the request
- * has progressed to a state that allows other clients to fetch the inserted
- * data. This is of course only valid for Put and PutDir requests. Alternatively
- * {@link #getURI()} can return a non-<code>null</code> value which signals
- * that the request generated a URI. If none of those methods return
- * <code>true</code>, you can use the block count methods to get detailed
- * progress statistics. When progress you received is a {@link DownloadResult}
- * you do not need to check
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class HighLevelProgress extends HighLevelResult {
-
-       /** Whether the request is finished. */
-       private boolean finished;
-
-       /** Whether a Put request should be fetchable now. */
-       private boolean fetchable;
-
-       /** The generated URI, in case of a Put request. */
-       private String uri;
-
-       /** The number of total blocks. */
-       private int totalBlocks;
-
-       /** The number of required blocks. */
-       private int requiredBlocks;
-
-       /** The number of successfully transferred blocks. */
-       private int successfulBlocks;
-
-       /** The number of failed blocks. */
-       private int failedBlocks;
-
-       /** The number of fatally failed blocks. */
-       private int fatallyFailedBlocks;
-
-       /** Whether the total number is finalized. */
-       private boolean totalFinalized;
-
-       /**
-        * Package-private constructor.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        */
-       public HighLevelProgress(String identifier) {
-               super(identifier);
-       }
-
-       /**
-        * Creates a new high-level progress for a request that is finished.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        * @param successful
-        *            <code>true</code> if the request finished successfully,
-        *            <code>false</code> otherwise
-        */
-       public HighLevelProgress(String identifier, boolean successful) {
-               this(identifier);
-               finished = true;
-               setFailed(!successful);
-       }
-
-       /**
-        * Creates a new high-level progress for a Put or PutDir request that
-        * generated a URI.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        * @param uri
-        *            The URI of the request
-        */
-       public HighLevelProgress(String identifier, String uri) {
-               this(identifier);
-               this.uri = uri;
-       }
-
-       /**
-        * Creates a new high-level progress with the given values.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        * @param totalBlocks
-        *            The total number of blocks
-        * @param requiredBlocks
-        *            The number of required blocks
-        * @param successfulBlocks
-        *            The number of successful blocks
-        * @param failedBlocks
-        *            The number of failed blocks
-        * @param fatallyFailedBlocks
-        *            The number of fatally failed blocks
-        * @param totalFinalized
-        *            <code>true</code> if the total number of blocks is
-        *            finalized, <code>false</code> otherwise
-        */
-       public HighLevelProgress(String identifier, int totalBlocks, int requiredBlocks, int successfulBlocks, int failedBlocks, int fatallyFailedBlocks, boolean totalFinalized) {
-               this(identifier);
-               this.totalBlocks = totalBlocks;
-               this.requiredBlocks = requiredBlocks;
-               this.successfulBlocks = successfulBlocks;
-               this.failedBlocks = failedBlocks;
-               this.fatallyFailedBlocks = fatallyFailedBlocks;
-               this.totalFinalized = totalFinalized;
-       }
-
-       /**
-        * Returns whether this progress means that a request has finished. Use
-        * {@link #isFailed()} to check if the request failed.
-        * 
-        * @see #isFailed()
-        * @return <code>true</code> if the request has finished
-        */
-       public boolean isFinished() {
-               return finished;
-       }
-
-       /**
-        * Sets whether the request described by this progress has finished.
-        * 
-        * @param finished
-        *            <code>true</code> if the request has finished,
-        *            <code>false</code> otherwise
-        */
-       void setFinished(boolean finished) {
-               this.finished = finished;
-       }
-
-       /**
-        * Returns whether the request should be fetchable now, in case it was a Put
-        * request.
-        * 
-        * @return <code>true</code> if the request should be fetchable now,
-        *         <code>false</code> otherwise
-        */
-       public boolean isFetchable() {
-               return fetchable;
-       }
-
-       /**
-        * Sets whether the request should be fetchable now, in case it was a Put
-        * request.
-        * 
-        * @param fetchable
-        *            <code>true</code> if the request should be fetchable now,
-        *            <code>false</code> otherwise
-        */
-       void setFetchable(boolean fetchable) {
-               this.fetchable = fetchable;
-       }
-
-       /**
-        * Returns the URI that was generated by the request. Of course only Put and
-        * PutDir requests will generated URIs.
-        * 
-        * @return The generated URI
-        */
-       public String getURI() {
-               return uri;
-       }
-
-       /**
-        * Sets the URI generated by the request.
-        * 
-        * @param uri
-        *            The generated URI
-        */
-       void setURI(String uri) {
-               this.uri = uri;
-       }
-
-       /**
-        * Returns the number of total blocks.
-        * 
-        * @return The number of total blocks
-        */
-       public int getTotalBlocks() {
-               return totalBlocks;
-       }
-
-       /**
-        * Sets the number of total blocks.
-        * 
-        * @param totalBlocks
-        *            The number of total blocks
-        */
-       void setTotalBlocks(int totalBlocks) {
-               this.totalBlocks = totalBlocks;
-       }
-
-       /**
-        * Returns the number of required blocks. For downloads, this number is
-        * smaller than {@link #getTotalBlocks()}.
-        * 
-        * @return The number of required blocks
-        */
-       public int getRequiredBlocks() {
-               return requiredBlocks;
-       }
-
-       /**
-        * Sets the number of required blocks.
-        * 
-        * @param requiredBlocks
-        *            The number of required blocks
-        */
-       void setRequiredBlocks(int requiredBlocks) {
-               this.requiredBlocks = requiredBlocks;
-       }
-
-       /**
-        * Returns the number of successfully transferred blocks.
-        * 
-        * @return The number of successfully transferred blocks
-        */
-       public int getSuccessfulBlocks() {
-               return successfulBlocks;
-       }
-
-       /**
-        * Sets the number of successfully transferred blocks.
-        * 
-        * @param successfulBlocks
-        *            The number of successfully transferred blocks
-        */
-       void setSuccessfulBlocks(int successfulBlocks) {
-               this.successfulBlocks = successfulBlocks;
-       }
-
-       /**
-        * Returns the number of failed blocks. Blocks that have failed can be
-        * retried.
-        * 
-        * @return The number of failed blocks
-        */
-       public int getFailedBlocks() {
-               return failedBlocks;
-       }
-
-       /**
-        * Sets the number of failed blocks.
-        * 
-        * @param failedBlocks
-        *            The number of failed blocks
-        */
-       void setFailedBlocks(int failedBlocks) {
-               this.failedBlocks = failedBlocks;
-       }
-
-       /**
-        * Returns the number of fatally failed blocks. Fatally failed blocks will
-        * never complete, even with endless retries.
-        * 
-        * @return The number of fatally failed blocks
-        */
-       public int getFatallyFailedBlocks() {
-               return fatallyFailedBlocks;
-       }
-
-       /**
-        * Sets the number of fatally failed blocks.
-        * 
-        * @param fatallyFailedBlocks
-        *            The number fatally failed blocks
-        */
-       void setFatallyFailedBlocks(int fatallyFailedBlocks) {
-               this.fatallyFailedBlocks = fatallyFailedBlocks;
-       }
-
-       /**
-        * Returns whether the result of {@link #getTotalBlocks()} is final, i.e. it
-        * won’t change anymore.
-        * 
-        * @return <code>true</code> if the result of {@link #getTotalBlocks()} is
-        *         final, <code>false</code> otherwise
-        */
-       public boolean isTotalFinalized() {
-               return totalFinalized;
-       }
-
-       /**
-        * Sets whether the result of {@link #getTotalBlocks()} is final, i.e. it
-        * won’t change anymore.
-        * 
-        * @param totalFinalized
-        *            <code>true</code> if the result of {@link #getTotalBlocks()}
-        *            is final, <code>false</code> otherwise
-        */
-       void setTotalFinalized(boolean totalFinalized) {
-               this.totalFinalized = totalFinalized;
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelProgressCallback.java b/src/net/pterodactylus/fcp/highlevel/HighLevelProgressCallback.java
deleted file mode 100644 (file)
index a35766a..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * jFCPlib-high-level-client - HighLevelContinousCallback.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.fcp.highlevel;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Callback for an operation that sends progress messages before completion.
- * 
- * @param
- * <P>
- * The type of the high-level progress
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class HighLevelProgressCallback<P extends HighLevelProgress> extends HighLevelCallback<P> {
-
-       /** Callback listeners. */
-       private final List<HighLevelProgressCallbackListener<P>> highLevelContinuousCallbackListeners = new ArrayList<HighLevelProgressCallbackListener<P>>();
-
-       /**
-        * Creates a new continuous callback with the given result.
-        * 
-        * @see HighLevelCallback#HighLevelCallback(HighLevelResult)
-        * @param progress
-        *            The result of the operation
-        */
-       HighLevelProgressCallback(P progress) {
-               super(progress);
-       }
-
-       //
-       // EVENT MANAGEMENT
-       //
-
-       /**
-        * Adds a callback listener to this callback.
-        * 
-        * @param highLevelContinuousCallbackListener
-        *            The callback listener to add
-        */
-       public void addHighLevelContinuousCallbackListener(HighLevelProgressCallbackListener<P> highLevelContinuousCallbackListener) {
-               highLevelContinuousCallbackListeners.add(highLevelContinuousCallbackListener);
-               fireGotProgress();
-       }
-
-       /**
-        * Removes a callback listener from this callback.
-        * 
-        * @param highLevelContinuousCallbackListener
-        *            The callback listener to remove
-        */
-       public void removeHighLevelContinuousCallbackListener(HighLevelProgressCallbackListener<P> highLevelContinuousCallbackListener) {
-               highLevelContinuousCallbackListeners.remove(highLevelContinuousCallbackListener);
-       }
-
-       /**
-        * Notifies all listeners that progress results have been received.
-        */
-       private void fireGotProgress() {
-               for (HighLevelProgressCallbackListener<P> highLevelContinuousCallbackListener: highLevelContinuousCallbackListeners) {
-                       highLevelContinuousCallbackListener.gotProgress(this);
-               }
-       }
-
-       //
-       // ACCESSORS
-       //
-
-       /**
-        * Waits for the next progress on this callback. Completion of the result
-        * also counts as progress.
-        * 
-        * @throws InterruptedException
-        *             if {@link Object#wait()} is interrupted
-        */
-       public void waitForProgress() throws InterruptedException {
-               synchronized (syncObject) {
-                       syncObject.wait();
-               }
-       }
-
-       /**
-        * Waits for the given amount of time (in milliseconds) for the next
-        * progress on this callback. Completion of the result also counts as
-        * progress.
-        * 
-        * @param waitTime
-        *            The maximum time to wait for progress
-        * @throws InterruptedException
-        *             if {@link Object#wait()} is interrupted
-        */
-       public void waitForProgress(long waitTime) throws InterruptedException {
-               synchronized (syncObject) {
-                       syncObject.wait(waitTime);
-               }
-       }
-
-       /**
-        * Notifies all listeners that the progress was updated.
-        */
-       void progressUpdated() {
-               synchronized (syncObject) {
-                       syncObject.notify();
-               }
-               fireGotProgress();
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelProgressCallbackListener.java b/src/net/pterodactylus/fcp/highlevel/HighLevelProgressCallbackListener.java
deleted file mode 100644 (file)
index e0683fb..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * jFCPlib-high-level-client - HighLevelContinuousCallbackListener.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.fcp.highlevel;
-
-/**
- * Interface for objects that want to be notified as soon as a lengthy operation
- * made some progress.
- * 
- * @param
- * <P>
- * The type of the high-level progress
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- * @version $Id: HighLevelContinuousCallbackListener.java 29 2008-04-15
- *          23:15:49Z bombe $
- */
-public interface HighLevelProgressCallbackListener<P extends HighLevelProgress> extends HighLevelCallbackListener<P> {
-
-       /**
-        * Notifies a listener that a progress message has been received.
-        * 
-        * @param highLevelContinuousCallback
-        *            The callback that made the progress
-        */
-       public void gotProgress(HighLevelProgressCallback<P> highLevelContinuousCallback);
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelProgressListener.java b/src/net/pterodactylus/fcp/highlevel/HighLevelProgressListener.java
deleted file mode 100644 (file)
index a438d68..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * jFCPlib-high-level-client - HighLevelProgressListener.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.fcp.highlevel;
-
-import java.util.EventListener;
-
-/**
- * Interface for objects that want to observe the progression of requests.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public interface HighLevelProgressListener extends EventListener {
-
-       /**
-        * Notifies a listener that the request with the given identifier has made
-        * some progress.
-        * 
-        * @param highLevelClient
-        *            The high-level client that emitted this event
-        * @param identifier
-        *            The identifier of the request
-        * @param highLevelProgress
-        *            The progress of the request
-        */
-       public void progressReceived(HighLevelClient highLevelClient, String identifier, HighLevelProgress highLevelProgress);
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelResult.java b/src/net/pterodactylus/fcp/highlevel/HighLevelResult.java
deleted file mode 100644 (file)
index 87085e2..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * fcplib - HighLevelResult.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.fcp.highlevel;
-
-/**
- * Base class for results of {@link HighLevelClient} operations.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public abstract class HighLevelResult {
-
-       /** The identifier of the request. */
-       private final String identifier;
-
-       /** Whether the operation failed. */
-       private boolean failed;
-
-       /**
-        * Package-private constructor.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        */
-       HighLevelResult(String identifier) {
-               this.identifier = identifier;
-       }
-
-       /**
-        * Returns the identifier of the underlying request.
-        * 
-        * @return The identifier of the request
-        */
-       public String getIdentifier() {
-               return identifier;
-       }
-
-       /**
-        * Returns whether the operation failed.
-        * 
-        * @return <code>true</code> if the operation failed, <code>false</code>
-        *         otherwise
-        */
-       public boolean isFailed() {
-               return failed;
-       }
-
-       /**
-        * Sets whether the operation failed.
-        * 
-        * @param failed
-        *            <code>true</code> if the operation failed,
-        *            <code>false</code> otherwise
-        */
-       void setFailed(boolean failed) {
-               this.failed = failed;
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/KeyGenerationResult.java b/src/net/pterodactylus/fcp/highlevel/KeyGenerationResult.java
deleted file mode 100644 (file)
index dd3a455..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * jFCPlib-high-level-client - KeyGenerationResult.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.fcp.highlevel;
-
-/**
- * Result of a {@link HighLevelClient#generateKey()} operation.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class KeyGenerationResult extends HighLevelResult {
-
-       /** The insert URI. */
-       private String insertURI;
-
-       /** The request URI. */
-       private String requestURI;
-
-       /**
-        * Package-private constructor.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        */
-       KeyGenerationResult(String identifier) {
-               super(identifier);
-       }
-
-       /**
-        * Returns the insert URI.
-        * 
-        * @return The insert URI
-        */
-       public String getInsertURI() {
-               return insertURI;
-       }
-
-       /**
-        * Sets the insert URI.
-        * 
-        * @param insertURI
-        *            The insert URI
-        */
-       void setInsertURI(String insertURI) {
-               this.insertURI = insertURI;
-       }
-
-       /**
-        * Returns the request URI.
-        * 
-        * @return The request URI
-        */
-       public String getRequestURI() {
-               return requestURI;
-       }
-
-       /**
-        * Sets the request URI.
-        * 
-        * @param requestURI
-        *            The request URI
-        */
-       void setRequestURI(String requestURI) {
-               this.requestURI = requestURI;
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/NotConnectedException.java b/src/net/pterodactylus/fcp/highlevel/NotConnectedException.java
deleted file mode 100644 (file)
index ecfd14b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * 
- */
-
-package net.pterodactylus.fcp.highlevel;
-
-/**
- * Exception that is thrown when an operation is tried on a not connected
- * connection.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class NotConnectedException extends HighLevelException {
-
-       /**
-        * Creates a new not-connected exception.
-        */
-       public NotConnectedException() {
-               super();
-       }
-
-       /**
-        * Creates a new not-connected exception with the given message.
-        * 
-        * @param message
-        *            The message of the exception
-        */
-       public NotConnectedException(String message) {
-               super(message);
-       }
-
-       /**
-        * Creates a new not-connected exception with the given cause.
-        * 
-        * @param cause
-        *            The cause of the exception
-        */
-       public NotConnectedException(Throwable cause) {
-               super(cause);
-       }
-
-       /**
-        * Creates a new not-connected exception with the given message and cause.
-        * 
-        * @param message
-        *            The message of the exception
-        * @param cause
-        *            The cause of the exception
-        */
-       public NotConnectedException(String message, Throwable cause) {
-               super(message, cause);
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/PeerListResult.java b/src/net/pterodactylus/fcp/highlevel/PeerListResult.java
deleted file mode 100644 (file)
index 96ba3be..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * jFCPlib-high-level-client - PeerListResult.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.fcp.highlevel;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import net.pterodactylus.fcp.Peer;
-
-/**
- * The result of a {@link HighLevelClient#getPeers()} operation.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class PeerListResult extends HighLevelResult implements Iterable<Peer> {
-
-       /** The list of peers. */
-       private final List<Peer> peers = new ArrayList<Peer>();
-
-       /**
-        * Package-private constructor.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        */
-       PeerListResult(String identifier) {
-               super(identifier);
-       }
-
-       /**
-        * Adds a peer to the list.
-        * 
-        * @param peer
-        *            The peer to add
-        */
-       void addPeer(Peer peer) {
-               peers.add(peer);
-       }
-
-       /**
-        * {@inheritDoc}
-        */
-       public Iterator<Peer> iterator() {
-               return peers.iterator();
-       }
-
-       /**
-        * Returns the peer at the given index.
-        * 
-        * @param index
-        *            The index of the peer
-        * @return The peer
-        * @see java.util.List#get(int)
-        */
-       public Peer get(int index) {
-               return peers.get(index);
-       }
-
-       /**
-        * Returns the size of the peer list.
-        * 
-        * @return The size of the peer list
-        * @see java.util.List#size()
-        */
-       public int size() {
-               return peers.size();
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/PeerResult.java b/src/net/pterodactylus/fcp/highlevel/PeerResult.java
deleted file mode 100644 (file)
index 9785f5b..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * jFCPlib-high-level-client - PeerResult.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.fcp.highlevel;
-
-import net.pterodactylus.fcp.Peer;
-
-/**
- * The peer result is the result of several operations:
- * {@link HighLevelClient#addPeer(String)},
- * {@link HighLevelClient#addPeer(java.net.URL)}, or
- * {@link HighLevelClient#addPeer(net.pterodactylus.fcp.NodeRef)}.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class PeerResult extends HighLevelResult {
-
-       /** The peer. */
-       private Peer peer;
-
-       /**
-        * Package-private constructor.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        */
-       PeerResult(String identifier) {
-               super(identifier);
-       }
-
-       /**
-        * Returns the peer.
-        * 
-        * @return The peer
-        */
-       public Peer getPeer() {
-               return peer;
-       }
-
-       /**
-        * Sets the peer.
-        * 
-        * @param peer
-        *            The peer
-        */
-       void setPeer(Peer peer) {
-               this.peer = peer;
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/PutDirRequestResult.java b/src/net/pterodactylus/fcp/highlevel/PutDirRequestResult.java
deleted file mode 100644 (file)
index 950999d..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * jFCPlib-high-level-client - PutDirRequestResult.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.fcp.highlevel;
-
-import net.pterodactylus.fcp.PersistentPutDir;
-import net.pterodactylus.fcp.Priority;
-import net.pterodactylus.fcp.UploadFrom;
-import net.pterodactylus.fcp.Verbosity;
-
-/**
- * A PutDir request result is generated by {@link HighLevelClient#getRequests()}.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class PutDirRequestResult extends RequestResult {
-
-       /** The wrapped PersistentPutDir FCP message. */
-       private final PersistentPutDir persistentPutDir;
-
-       /**
-        * Creates a new PutDir request result.
-        * 
-        * @param persistentPutDir
-        *            The PersistentPutDir FCP message to wrap
-        */
-       public PutDirRequestResult(PersistentPutDir persistentPutDir) {
-               super(persistentPutDir.getIdentifier());
-               this.persistentPutDir = persistentPutDir;
-       }
-
-       /**
-        * Returns the number of files in the request.
-        * 
-        * @return The number of files
-        * @see net.pterodactylus.fcp.PersistentPutDir#getFileCount()
-        */
-       public int getFileCount() {
-               return persistentPutDir.getFileCount();
-       }
-
-       /**
-        * Returns the length of the file at the given index.
-        * 
-        * @param fileIndex
-        *            The index of the file
-        * @return The length of the file
-        * @see net.pterodactylus.fcp.PersistentPutDir#getFileDataLength(int)
-        */
-       public long getFileDataLength(int fileIndex) {
-               return persistentPutDir.getFileDataLength(fileIndex);
-       }
-
-       /**
-        * Returns the name of the file at the given index.
-        * 
-        * @param fileIndex
-        *            The index of the file
-        * @return The name of the file
-        * @see net.pterodactylus.fcp.PersistentPutDir#getFileFilename(int)
-        */
-       public String getFileFilename(int fileIndex) {
-               return persistentPutDir.getFileFilename(fileIndex);
-       }
-
-       /**
-        * Returns the content type of the file at the given index.
-        * 
-        * @param fileIndex
-        *            The index of the file
-        * @return The content type of the file
-        * @see net.pterodactylus.fcp.PersistentPutDir#getFileMetadataContentType(int)
-        */
-       public String getFileMetadataContentType(int fileIndex) {
-               return persistentPutDir.getFileMetadataContentType(fileIndex);
-       }
-
-       /**
-        * Returns the name of the file at the given index.
-        * 
-        * @param fileIndex
-        *            The index of the file
-        * @return The name of the file
-        * @see net.pterodactylus.fcp.PersistentPutDir#getFileName(int)
-        */
-       public String getFileName(int fileIndex) {
-               return persistentPutDir.getFileName(fileIndex);
-       }
-
-       /**
-        * Returns the upload source of the file at the given index.
-        * 
-        * @param fileIndex
-        *            The index of the file
-        * @return The upload source of the file
-        * @see net.pterodactylus.fcp.PersistentPutDir#getFileUploadFrom(int)
-        */
-       public UploadFrom getFileUploadFrom(int fileIndex) {
-               return persistentPutDir.getFileUploadFrom(fileIndex);
-       }
-
-       /**
-        * Returns the maximum number of retries for failed blocks.
-        * 
-        * @return The maximum number of retries
-        * @see net.pterodactylus.fcp.PersistentPutDir#getMaxRetries()
-        */
-       public int getMaxRetries() {
-               return persistentPutDir.getMaxRetries();
-       }
-
-       /**
-        * Returns the priority of the request.
-        * 
-        * @return The priority
-        * @see net.pterodactylus.fcp.PersistentPutDir#getPriority()
-        */
-       public Priority getPriority() {
-               return persistentPutDir.getPriority();
-       }
-
-       /**
-        * Returns the URI of the request.
-        * 
-        * @return The URI of the request
-        * @see net.pterodactylus.fcp.PersistentPutDir#getURI()
-        */
-       public String getURI() {
-               return persistentPutDir.getURI();
-       }
-
-       /**
-        * Returns the verbosity of the request.
-        * 
-        * @return The verbosity
-        * @see net.pterodactylus.fcp.PersistentPutDir#getVerbosity()
-        */
-       public Verbosity getVerbosity() {
-               return persistentPutDir.getVerbosity();
-       }
-
-       /**
-        * Returns whether the request is on the global queue.
-        * 
-        * @return <code>true</code> if the request is on the global queue,
-        *         <code>false</code> if it is on the client-local queue
-        * @see net.pterodactylus.fcp.PersistentPutDir#isGlobal()
-        */
-       public boolean isGlobal() {
-               return persistentPutDir.isGlobal();
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/PutRequestResult.java b/src/net/pterodactylus/fcp/highlevel/PutRequestResult.java
deleted file mode 100644 (file)
index 1bd2e78..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * jFCPlib-high-level-client - PutRequestResult.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.fcp.highlevel;
-
-import net.pterodactylus.fcp.Persistence;
-import net.pterodactylus.fcp.PersistentPut;
-import net.pterodactylus.fcp.Priority;
-import net.pterodactylus.fcp.UploadFrom;
-import net.pterodactylus.fcp.Verbosity;
-
-/**
- * A put request result will be contained in a {@link RequestListResult}.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class PutRequestResult extends RequestResult {
-
-       /** The wrapped PersistentPut FCP message. */
-       private final PersistentPut persistentPut;
-
-       /**
-        * Creates a new put request result.
-        * 
-        * @param persistentPut
-        *            The PersistentPut FCP message to wrap
-        */
-       public PutRequestResult(PersistentPut persistentPut) {
-               super(persistentPut.getIdentifier());
-               this.persistentPut = persistentPut;
-       }
-
-       /**
-        * Returns the client token associated with the request.
-        * 
-        * @return The client token
-        * @see net.pterodactylus.fcp.PersistentPut#getClientToken()
-        */
-       public String getClientToken() {
-               return persistentPut.getClientToken();
-       }
-
-       /**
-        * Returns the length of the data to be inserted.
-        * 
-        * @return The length of the data
-        * @see net.pterodactylus.fcp.PersistentPut#getDataLength()
-        */
-       public long getDataLength() {
-               return persistentPut.getDataLength();
-       }
-
-       /**
-        * Returns the maximum number of retries for failed blocks.
-        * 
-        * @return The maximum number of retries
-        * @see net.pterodactylus.fcp.PersistentPut#getMaxRetries()
-        */
-       public int getMaxRetries() {
-               return persistentPut.getMaxRetries();
-       }
-
-       /**
-        * Returns the content type of the data.
-        * 
-        * @return The content type of the data
-        * @see net.pterodactylus.fcp.PersistentPut#getMetadataContentType()
-        */
-       public String getMetadataContentType() {
-               return persistentPut.getMetadataContentType();
-       }
-
-       /**
-        * Returns the persistence level of the request.
-        * 
-        * @return The persistence level
-        * @see net.pterodactylus.fcp.PersistentPut#getPersistence()
-        */
-       public Persistence getPersistence() {
-               return persistentPut.getPersistence();
-       }
-
-       /**
-        * Returns the priority of the request.
-        * 
-        * @return The priority
-        * @see net.pterodactylus.fcp.PersistentPut#getPriority()
-        */
-       public Priority getPriority() {
-               return persistentPut.getPriority();
-       }
-
-       /**
-        * Returns the target filename of the request
-        * 
-        * @return The target filename
-        * @see net.pterodactylus.fcp.PersistentPut#getTargetFilename()
-        */
-       public String getTargetFilename() {
-               return persistentPut.getTargetFilename();
-       }
-
-       /**
-        * Returns the upload source of the request.
-        * 
-        * @return The upload source
-        * @see net.pterodactylus.fcp.PersistentPut#getUploadFrom()
-        */
-       public UploadFrom getUploadFrom() {
-               return persistentPut.getUploadFrom();
-       }
-
-       /**
-        * Returns the URI of the request.
-        * 
-        * @return The URI
-        * @see net.pterodactylus.fcp.PersistentPut#getURI()
-        */
-       public String getURI() {
-               return persistentPut.getURI();
-       }
-
-       /**
-        * Returns the verbosity of the request.
-        * 
-        * @return The verbosity
-        * @see net.pterodactylus.fcp.PersistentPut#getVerbosity()
-        */
-       public Verbosity getVerbosity() {
-               return persistentPut.getVerbosity();
-       }
-
-       /**
-        * Returns whether the request is on the global queue.
-        * 
-        * @return <code>true</code> if the request is on the global queue,
-        *         <code>false</code> if it is on the client-local queue
-        * @see net.pterodactylus.fcp.PersistentPut#isGlobal()
-        */
-       public boolean isGlobal() {
-               return persistentPut.isGlobal();
-       }
-
-       /**
-        * Returns whether the request has already started.
-        * 
-        * @return <code>true</code> if the request has started,
-        *         <code>false</code> otherwise
-        * @see net.pterodactylus.fcp.PersistentPut#isStarted()
-        */
-       public boolean isStarted() {
-               return persistentPut.isStarted();
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/RequestListResult.java b/src/net/pterodactylus/fcp/highlevel/RequestListResult.java
deleted file mode 100644 (file)
index adb8f7a..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * jFCPlib-high-level-client - RequestListResult.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.fcp.highlevel;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * The request list results lists all currently running requests on a node.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class RequestListResult extends HighLevelResult implements Iterable<RequestResult> {
-
-       /** The request results. */
-       private List<RequestResult> requestResults = Collections.synchronizedList(new ArrayList<RequestResult>());
-
-       /**
-        * Creates a new request list result.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        */
-       RequestListResult(String identifier) {
-               super(identifier);
-       }
-
-       /**
-        * Adds a request result.
-        * 
-        * @param requestResult
-        *            The request result to add
-        */
-       void addRequestResult(RequestResult requestResult) {
-               requestResults.add(requestResult);
-       }
-
-       /**
-        * {@inheritDoc}
-        */
-       public Iterator<RequestResult> iterator() {
-               return requestResults.iterator();
-       }
-
-       /**
-        * Returns the request result at the given index.
-        * 
-        * @param index
-        *            The index of the request result
-        * @return The request result
-        */
-       public RequestResult get(int index) {
-               return requestResults.get(index);
-       }
-
-       /**
-        * Returns the number of request results in this request list.
-        * 
-        * @return The number of request results
-        */
-       public int size() {
-               return requestResults.size();
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/RequestResult.java b/src/net/pterodactylus/fcp/highlevel/RequestResult.java
deleted file mode 100644 (file)
index 7072325..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * jFCPlib-high-level-client - RequestResult.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.fcp.highlevel;
-
-/**
- * A request result is the result of different operations, e.g.
- * {@link HighLevelClient#getRequests()}.
- * 
- * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
- */
-public class RequestResult extends HighLevelResult {
-
-       /**
-        * Creates a new request result.
-        * 
-        * @param identifier
-        *            The identifier of the request
-        */
-       RequestResult(String identifier) {
-               super(identifier);
-       }
-
-}
diff --git a/src/net/pterodactylus/fcp/highlevel/package-info.java b/src/net/pterodactylus/fcp/highlevel/package-info.java
deleted file mode 100644 (file)
index 27aee51..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-/**
- * This package contains the high-level client API.
- */
-
-package net.pterodactylus.fcp.highlevel;
\ No newline at end of file