package org.limewire.io; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Set; /** Exposes all information necessary for connecting to a host. */ // TODO push up into IpPort? public interface Connectable extends IpPort, Address { public static final Comparator<Connectable> COMPARATOR = new Comparator<Connectable>() { @Override public int compare(Connectable o1, Connectable o2) { int ipPortdiff = IpPort.COMPARATOR.compare(o1, o2); if (ipPortdiff == 0) { if (o1.isTLSCapable() == o2.isTLSCapable()) { return 0; } if (o1.isTLSCapable()) { return 1; } return -1; } return ipPortdiff; } }; /** Determines if the host is capable of receiving incoming TLS connections. */ boolean isTLSCapable(); /** An empty list, casted to an Connectable. */ public static final List<Connectable> EMPTY_LIST = Collections.emptyList(); /** An empty set, casted to an Connectable. */ public static final Set<Connectable> EMPTY_SET = Collections.emptySet(); }