class CachedConnection implements Connection {

    void open() {
        if (session == null || !session.isConnected()) {
            throw new IllegalStateException("Connection is either unavailable or physically closed.");
        }

        closed = false;
    }

    public  CachedConnection(final String username, final String password, final URI serverAddress,
            final ConnectionLibrarian<CachedConnection> librarian);
    public  CachedConnection(final String username, final String salt, final URI privateKeyLocation,
            final URI serverAddress, final ConnectionLibrarian<CachedConnection> librarian);

}