/** * Wraps a set in a listenable set.<br> * If is provided with a set that implements the SortedSet interface, this method returns a listenable set that also implements the SortedSet interface. * @param <T> component type * @param setToWrap * @return listenable set that uses the provided set as storage */ public static final <T> ListenableSet<T> listenableSet(Set<T> setToWrap) { if (setToWrap instanceof ListenableSet<?>) return (ListenableSet<T>)setToWrap; if (setToWrap instanceof SortedSet<?>) { return new DefaultListenableSortedSet<T>((SortedSet<T>)setToWrap); } return new DefaultListenableSet<T>(setToWrap); }