add ProtocolError message
[jSite2.git] / src / net / pterodactylus / util / fcp / FcpConnection.java
index 4582eca..dabb542 100644 (file)
@@ -28,8 +28,6 @@ import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.List;
 
-import net.pterodactylus.util.fcp.message.CloseConnectionDuplicateClientName;
-import net.pterodactylus.util.fcp.message.NodeHello;
 import net.pterodactylus.util.io.Closer;
 
 /**
@@ -170,6 +168,133 @@ public class FcpConnection {
        }
 
        /**
+        * Notifies listeners that a “SSKKeypair” message was received.
+        * 
+        * @see FcpListener#receivedSSKKeypair(FcpConnection, SSKKeypair)
+        * @param sskKeypair
+        *            The “SSKKeypair” message
+        */
+       private void fireReceivedSSKKeypair(SSKKeypair sskKeypair) {
+               for (FcpListener fcpListener: fcpListeners) {
+                       fcpListener.receivedSSKKeypair(this, sskKeypair);
+               }
+       }
+
+       /**
+        * Notifies listeners that a “Peer” message was received.
+        * 
+        * @see FcpListener#receivedPeer(FcpConnection, Peer)
+        * @param peer
+        *            The “Peer” message
+        */
+       private void fireReceivedPeer(Peer peer) {
+               for (FcpListener fcpListener: fcpListeners) {
+                       fcpListener.receivedPeer(this, peer);
+               }
+       }
+
+       /**
+        * Notifies all listeners that an “EndListPeers” message was received.
+        * 
+        * @see FcpListener#receivedEndListPeers(FcpConnection, EndListPeers)
+        * @param endListPeers
+        *            The “EndListPeers” message
+        */
+       private void fireReceivedEndListPeers(EndListPeers endListPeers) {
+               for (FcpListener fcpListener: fcpListeners) {
+                       fcpListener.receivedEndListPeers(this, endListPeers);
+               }
+       }
+
+       /**
+        * Notifies all listeners that a “PeerNote” message was received.
+        * 
+        * @see FcpListener#receivedPeerNote(FcpConnection, PeerNote)
+        * @param peerNote
+        */
+       private void fireReceivedPeerNote(PeerNote peerNote) {
+               for (FcpListener fcpListener: fcpListeners) {
+                       fcpListener.receivedPeerNote(this, peerNote);
+               }
+       }
+
+       /**
+        * Notifies all listeners that an “EndListPeerNotes” message was received.
+        * 
+        * @see FcpListener#receivedEndListPeerNotes(FcpConnection,
+        *      EndListPeerNotes)
+        * @param endListPeerNotes
+        *            The “EndListPeerNotes” message
+        */
+       private void fireReceivedEndListPeerNotes(EndListPeerNotes endListPeerNotes) {
+               for (FcpListener fcpListener: fcpListeners) {
+                       fcpListener.receivedEndListPeerNotes(this, endListPeerNotes);
+               }
+       }
+
+       /**
+        * Notifies all listeners that a “PeerRemoved” message was received.
+        * 
+        * @see FcpListener#receivedPeerRemoved(FcpConnection, PeerRemoved)
+        * @param peerRemoved
+        *            The “PeerRemoved” message
+        */
+       private void fireReceivedPeerRemoved(PeerRemoved peerRemoved) {
+               for (FcpListener fcpListener: fcpListeners) {
+                       fcpListener.receivedPeerRemoved(this, peerRemoved);
+               }
+       }
+
+       /**
+        * Notifies all listeners that a “NodeData” message was received.
+        * 
+        * @see FcpListener#receivedNodeData(FcpConnection, NodeData)
+        * @param nodeData
+        *            The “NodeData” message
+        */
+       private void fireReceivedNodeData(NodeData nodeData) {
+               for (FcpListener fcpListener: fcpListeners) {
+                       fcpListener.receivedNodeData(this, nodeData);
+               }
+       }
+
+       /**
+        * Notifies all listeners that a “TestDDAReply” message was received.
+        * 
+        * @param testDDAReply
+        *            The “TestDDAReply” message
+        */
+       private void fireReceivedTestDDAReply(TestDDAReply testDDAReply) {
+               for (FcpListener fcpListener: fcpListeners) {
+                       fcpListener.receivedTestDDAReply(this, testDDAReply);
+               }
+       }
+
+       /**
+        * Notifies all listeners that a “TestDDAComplete” message was received.
+        * 
+        * @param testDDAComplete
+        *            The “TestDDAComplete” message
+        */
+       private void fireReceivedTestDDAComplete(TestDDAComplete testDDAComplete) {
+               for (FcpListener fcpListener: fcpListeners) {
+                       fcpListener.receivedTestDDAComplete(this, testDDAComplete);
+               }
+       }
+
+       /**
+        * Notifies all listeners that a “ProtocolError” message was received.
+        * 
+        * @param protocolError
+        *            The “ProtocolError” message
+        */
+       private void fireReceivedProtocolError(ProtocolError protocolError) {
+               for (FcpListener fcpListener: fcpListeners) {
+                       fcpListener.receivedProtocolError(this, protocolError);
+               }
+       }
+
+       /**
         * Notifies all registered listeners that a message has been received.
         * 
         * @see FcpListener#receivedMessage(FcpConnection, FcpMessage)
@@ -243,7 +368,27 @@ public class FcpConnection {
         */
        void handleMessage(FcpMessage fcpMessage) {
                String messageName = fcpMessage.getName();
-               if ("NodeHello".equals(messageName)) {
+               if ("ProtocolError".equals(messageName)) {
+                       fireReceivedProtocolError(new ProtocolError(fcpMessage));
+               } else if ("Peer".equals(messageName)) {
+                       fireReceivedPeer(new Peer(fcpMessage));
+               } else if ("PeerNote".equals(messageName)) {
+                       fireReceivedPeerNote(new PeerNote(fcpMessage));
+               } else if ("EndListPeerNotes".equals(messageName)) {
+                       fireReceivedEndListPeerNotes(new EndListPeerNotes(fcpMessage));
+               } else if ("EndListPeers".equals(messageName)) {
+                       fireReceivedEndListPeers(new EndListPeers(fcpMessage));
+               } else if ("SSKKeypair".equals(messageName)) {
+                       fireReceivedSSKKeypair(new SSKKeypair(fcpMessage));
+               } else if ("PeerRemoved".equals(messageName)) {
+                       fireReceivedPeerRemoved(new PeerRemoved(fcpMessage));
+               } else if ("NodeData".equals(messageName)) {
+                       fireReceivedNodeData(new NodeData(fcpMessage));
+               } else if ("TestDDAReply".equals(messageName)) {
+                       fireReceivedTestDDAReply(new TestDDAReply(fcpMessage));
+               } else if ("TestDDAComplete".equals(messageName)) {
+                       fireReceivedTestDDAComplete(new TestDDAComplete(fcpMessage));
+               } else if ("NodeHello".equals(messageName)) {
                        fireReceivedNodeHello(new NodeHello(fcpMessage));
                } else if ("CloseConnectionDuplicateClientName".equals(messageName)) {
                        fireReceivedCloseConnectionDuplicateClientName(new CloseConnectionDuplicateClientName(fcpMessage));