1 package org.sourceforge.jemm.comm.connection.socket;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.io.OutputStream;
6 import java.net.Socket;
7
8 import org.sourceforge.jemm.comm.connection.Connection;
9 import org.sourceforge.jemm.comm.connection.ConnectionException;
10
11 public class SocketConnection implements Connection {
12
13 private final Socket socket;
14 private final InputStream inputStream;
15 private final OutputStream outputStream;
16 private final String hostname;
17 private final int port;
18
19
20 public SocketConnection(Socket socket, InputStream is, OutputStream os,
21 String hostname, int port) {
22 this.socket = socket;
23 this.inputStream = is;
24 this.outputStream = os;
25 this.hostname = hostname;
26 this.port = port;
27 }
28
29 @Override
30 public void close() throws ConnectionException {
31 if(!socket.isClosed()) {
32 try {
33 socket.close();
34 }catch(IOException ioe) {
35 throw new ConnectionException("Error closing underlying connection",ioe);
36 }
37 }
38 }
39
40 @Override
41 public InputStream getInputStream() {
42 return inputStream;
43 }
44
45 @Override
46 public OutputStream getOutputStream() {
47 return outputStream;
48 }
49
50 @Override
51 public String getConnectionName() {
52 return "socket:" + hostname + ":" + port;
53 }
54 }