applied LGPLv3 and source code formatting.
[vamsas.git] / src / uk / ac / vamsas / client / picking / PickEndPoint.java
index beb0e46..c9c7e71 100644 (file)
@@ -1,3 +1,24 @@
+/*\r
+ * This file is part of the Vamsas Client version 0.1. \r
+ * Copyright 2009 by Jim Procter, Iain Milne, Pierre Marguerite, \r
+ *  Andrew Waterhouse and Dominik Lindner.\r
+ * \r
+ * Earlier versions have also been incorporated into Jalview version 2.4 \r
+ * since 2008, and TOPALi version 2 since 2007.\r
+ * \r
+ * The Vamsas Client is free software: you can redistribute it and/or modify\r
+ * it under the terms of the GNU Lesser General Public License as published by\r
+ * the Free Software Foundation, either version 3 of the License, or\r
+ * (at your option) any later version.\r
+ *  \r
+ * The Vamsas Client is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU Lesser General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU Lesser General Public License\r
+ * along with the Vamsas Client.  If not, see <http://www.gnu.org/licenses/>.\r
+ */\r
 package uk.ac.vamsas.client.picking;\r
 \r
 import java.io.*;\r
@@ -6,144 +27,135 @@ import java.util.logging.*;
 \r
 import org.apache.commons.logging.Log;\r
 \r
-class PickEndPoint extends Thread\r
-{\r
-       private Log logger = org.apache.commons.logging.LogFactory.getLog(uk.ac.vamsas.client.picking.PickEndPoint.class);\r
-       \r
-       private Socket socket;\r
-       private int rPort;\r
-       private BufferedWriter os;\r
-       private BufferedReader in;\r
-       /**\r
+class PickEndPoint extends Thread {\r
+  private Log logger = org.apache.commons.logging.LogFactory\r
+      .getLog(uk.ac.vamsas.client.picking.PickEndPoint.class);\r
+\r
+  private Socket socket;\r
+\r
+  private int rPort;\r
+\r
+  private BufferedWriter os;\r
+\r
+  private BufferedReader in;\r
+\r
+  /**\r
    * reference to server or null if no comms session active\r
    */\r
-       private SocketManager manager;  \r
-       \r
-       PickEndPoint(SocketManager manager, Socket s)\r
-       {\r
-               this.manager = manager;\r
-               socket = s;\r
-       }\r
-       \r
-       boolean openConnection()\r
-       {\r
-               try\r
-               {\r
-                       // Create the socket if it doesn't already exist\r
-                       if (socket == null)\r
-                               socket = new Socket(InetAddress.getLocalHost(), PickServer.PORT);\r
-                       \r
-                       rPort = socket.getPort();\r
-                       socket.setKeepAlive(true);\r
-                                               \r
-                       // Open the streams for reading/writing\r
-                       os = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));\r
-                       in = new BufferedReader(new InputStreamReader(socket.getInputStream()));\r
-               \r
-                       // Start the thread to listen for incoming messages\r
-                       logger.debug("CLIENT: connection successful to port "\r
-                               + socket.getPort() + " via port " + socket.getLocalPort());\r
-                       start();\r
-                       \r
-                       return true;\r
-               }\r
-               catch (Exception e)\r
-               {\r
-                       logger.info("CLIENT: connection failed: " + e);\r
-                       return false;\r
-               }\r
-       }\r
-       \r
-       void send(Message message)\r
-       {\r
-               try\r
-               {\r
-                       String str = message.getRawMessage();\r
-                       \r
-                       // System.err.println("CLIENT: send " + str + " to " + rPort);\r
-                       os.write(str);\r
-                       \r
-                       // We use a newline to terminate the message\r
-                       os.newLine();\r
-                       os.flush();\r
-               }\r
-               catch (Exception e)\r
-               {\r
-                       //logger.info("CLIENT: failed to send");\r
-                       \r
-                       // TODO: terminate the connection on a failed send or retry? (Has this been done? JBP)\r
-                       terminate();\r
-               }\r
-       }\r
-       \r
-       // void receive() (threaded)\r
-       public void run()\r
-       {\r
-               try\r
-               {\r
-                       while (manager!=null)\r
-                       {\r
-                               String str = in.readLine();                             \r
-                               //logger.info("CLIENT: recv " + str + " from " + rPort);\r
-                               \r
-                               // TODO: Spawn this off into the GUI Event-Dispatch thread...\r
-                               \r
-                               // Convert the string back into something API friendly\r
-                               Message message = strToMessage(str);\r
-                               \r
-                               // Ignore corrupted or unknown message types\r
-                               if (message != null)                            \r
-                                       manager.processMessage(this, message);\r
-                       }\r
-               }\r
-               catch (Exception e)\r
-               {\r
-                       // Means the other end of the connection has (probably died) so we need\r
-                       // terminate this endpoint (if this is server side)\r
-                       //logger.info("CLIENT: read failed: " + e);\r
-                                               \r
-                       terminate(); // this may not be necessary - probably caused infinite loop on terminate() without null checks\r
-               }\r
-       }\r
-       \r
-       void terminate()\r
-       {\r
-    SocketManager mgr=manager;\r
-    manager=null; // stops receive thread\r
-               if (socket!=null) {\r
-      try { socket.close(); }\r
-      catch (IOException e) {}\r
-      socket=null;\r
+  private SocketManager manager;\r
+\r
+  PickEndPoint(SocketManager manager, Socket s) {\r
+    this.manager = manager;\r
+    socket = s;\r
+  }\r
+\r
+  boolean openConnection() {\r
+    try {\r
+      // Create the socket if it doesn't already exist\r
+      if (socket == null)\r
+        socket = new Socket(InetAddress.getLocalHost(), PickServer.PORT);\r
+\r
+      rPort = socket.getPort();\r
+      socket.setKeepAlive(true);\r
+\r
+      // Open the streams for reading/writing\r
+      os = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));\r
+      in = new BufferedReader(new InputStreamReader(socket.getInputStream()));\r
+\r
+      // Start the thread to listen for incoming messages\r
+      logger.debug("CLIENT: connection successful to port " + socket.getPort()\r
+          + " via port " + socket.getLocalPort());\r
+      start();\r
+\r
+      return true;\r
+    } catch (Exception e) {\r
+      logger.info("CLIENT: connection failed: " + e);\r
+      return false;\r
+    }\r
+  }\r
+\r
+  void send(Message message) {\r
+    try {\r
+      String str = message.getRawMessage();\r
+\r
+      // System.err.println("CLIENT: send " + str + " to " + rPort);\r
+      os.write(str);\r
+\r
+      // We use a newline to terminate the message\r
+      os.newLine();\r
+      os.flush();\r
+    } catch (Exception e) {\r
+      // logger.info("CLIENT: failed to send");\r
+\r
+      // TODO: terminate the connection on a failed send or retry? (Has this\r
+      // been done? JBP)\r
+      terminate();\r
+    }\r
+  }\r
+\r
+  // void receive() (threaded)\r
+  public void run() {\r
+    try {\r
+      while (manager != null) {\r
+        String str = in.readLine();\r
+        // logger.info("CLIENT: recv " + str + " from " + rPort);\r
+\r
+        // TODO: Spawn this off into the GUI Event-Dispatch thread...\r
+\r
+        // Convert the string back into something API friendly\r
+        Message message = strToMessage(str);\r
+\r
+        // Ignore corrupted or unknown message types\r
+        if (message != null)\r
+          manager.processMessage(this, message);\r
+      }\r
+    } catch (Exception e) {\r
+      // Means the other end of the connection has (probably died) so we need\r
+      // terminate this endpoint (if this is server side)\r
+      // logger.info("CLIENT: read failed: " + e);\r
+\r
+      terminate(); // this may not be necessary - probably caused infinite loop\r
+                   // on terminate() without null checks\r
+    }\r
+  }\r
+\r
+  void terminate() {\r
+    SocketManager mgr = manager;\r
+    manager = null; // stops receive thread\r
+    if (socket != null) {\r
+      try {\r
+        socket.close();\r
+      } catch (IOException e) {\r
+      }\r
+      socket = null;\r
     }\r
-    //logger.info("CLIENT: closing connection to port " + socket.getPort());\r
-               // terminate() can be called by the socket manager to shutdown the connection,\r
+    // logger.info("CLIENT: closing connection to port " + socket.getPort());\r
+    // terminate() can be called by the socket manager to shutdown the\r
+    // connection,\r
     // or the receive thread after an exception has been received\r
     // (which includes the above case when the socket is closed.\r
-    //  so we only want to removeEndPoint once - for the initial call to terminate()\r
-    if (mgr!=null)\r
+    // so we only want to removeEndPoint once - for the initial call to\r
+    // terminate()\r
+    if (mgr != null)\r
       mgr.removeEndPoint(this);\r
-       }\r
-       \r
-       private Message strToMessage(String str)\r
-       {\r
-               try\r
-               {\r
-                 // System.err.println("Received Message\n*\n"+str+"*");\r
-      if (str==null || str.length()==1)\r
+  }\r
+\r
+  private Message strToMessage(String str) {\r
+    try {\r
+      // System.err.println("Received Message\n*\n"+str+"*");\r
+      if (str == null || str.length() == 1)\r
         return null;\r
-                       if (str.startsWith("CUSTOM"))\r
-                               return new CustomMessage(str.substring(6));\r
-                       if (str.startsWith("MOUSEOVER"))\r
-                               return new MouseOverMessage(str);\r
-                       if (str.startsWith("SELECTION"))\r
+      if (str.startsWith("CUSTOM"))\r
+        return new CustomMessage(str.substring(6));\r
+      if (str.startsWith("MOUSEOVER"))\r
+        return new MouseOverMessage(str);\r
+      if (str.startsWith("SELECTION"))\r
         return new SelectionMessage(str);\r
-      \r
-               }\r
-               catch (Exception e)\r
-               {\r
-                       //logger.info("Unable to reconstruct message: " + e);\r
-               }\r
-               \r
-               return null;\r
-       }\r
-}
\ No newline at end of file
+\r
+    } catch (Exception e) {\r
+      // logger.info("Unable to reconstruct message: " + e);\r
+    }\r
+\r
+    return null;\r
+  }\r
+}\r