public boolean equals(Object other) {
	if (other == this) {
	    return true;
	}
	
	if (!(other instanceof ConnectionDetails)) {
	    return false;
	}

	final ConnectionDetails otherConnectionDetails = (ConnectionDetails)other;

	return
	    hashCode() == otherConnectionDetails.hashCode() &&
	    getLocalPort() == otherConnectionDetails.getLocalPort() &&
	    getRemotePort() == otherConnectionDetails.getRemotePort() &&
	    isSecure() == otherConnectionDetails.isSecure() &&
	    getLocalHost().equals(otherConnectionDetails.getLocalHost()) &&
	    getRemoteHost().equals(otherConnectionDetails.getRemoteHost());
    }