View Javadoc

1   package net.sf.josceleton.connection.impl;
2   
3   import net.sf.josceleton.connection.api.Connection;
4   import net.sf.josceleton.connection.api.Connector;
5   import net.sf.josceleton.connection.impl.osc.OscPort;
6   import net.sf.josceleton.connection.impl.osc.OscPortOpener;
7   
8   import org.apache.commons.logging.Log;
9   import org.apache.commons.logging.LogFactory;
10  
11  import com.google.inject.Inject;
12  
13  public class ConnectorImpl implements Connector {
14  	
15  	private static final Log LOG = LogFactory.getLog(ConnectorImpl.class);
16  	
17  	private static final int DEFAULT_OSCELETON_PORT = 7110;
18  	
19  	private final OscPortOpener portOpener;
20  
21  	
22  	private final ConnectionFactory connectionFactory;
23  	
24  	
25  	@Inject
26  	public ConnectorImpl(
27  			final OscPortOpener portOpener,
28  			final ConnectionFactory connectionFactory
29  			) {
30  		this.portOpener = portOpener;
31  		this.connectionFactory = connectionFactory;
32  	}
33  
34  	/** {@inheritDoc} from {@link Connector} */
35  	@Override public final Connection openConnection() {
36  		LOG.debug("openConnection()");
37  		return this.openConnectionOnPort(DEFAULT_OSCELETON_PORT);
38  	}
39  
40  	/** {@inheritDoc} from {@link Connector} */
41  	@Override public final Connection openConnectionOnPort(final int port) {
42  		LOG.debug("openConnectionOnPort(port=" + port + ")");
43  		
44  		final OscPort oscPort = this.portOpener.connect(port);
45  		
46  		final ConnectionInternal connection = this.connectionFactory.create(oscPort);
47  		connection.establish(); // ConnectionInternal enhances ordinary Connection with establish() method
48  		return connection;
49  	}
50  	
51  }