package org.cyclopsgroup.jmxterm.cc; import java.io.IOException; import javax.management.MBeanServerConnection; import javax.management.remote.JMXConnector; import javax.management.remote.JMXServiceURL; import org.apache.commons.lang.Validate; import org.cyclopsgroup.jmxterm.Connection; /** * Identifies a JMX connection * * @author <a href="mailto:jiaqi.guo@gmail.com">Jiaqi Guo</a> */ class ConnectionImpl implements Connection { private final JMXConnector connector; private final JMXServiceURL url; /** * @param connector JMX connector * @param url JMX service URL object * @param displayUrl The URL user manually input */ ConnectionImpl( JMXConnector connector, JMXServiceURL url ) { Validate.notNull( connector, "JMX connector can't be NULL" ); Validate.notNull( url, "JMX service URL can't be NULL" ); this.connector = connector; this.url = url; } /** * Close current connection * * @throws IOException Communication error */ void close() throws IOException { connector.close(); } /** * @return JMX connector */ public final JMXConnector getConnector() { return connector; } /** * @inheritDoc */ public String getConnectorId() throws IOException { return connector.getConnectionId(); } /** * @inheritDoc */ public MBeanServerConnection getServerConnection() throws IOException { return connector.getMBeanServerConnection(); } /** * @inheritDoc */ public final JMXServiceURL getUrl() { return url; } }