//-----------------------------------------------------------------------

        /**
         * Returns a synchronized set backed by the given set.
         * <p>
         * You must manually synchronize on the returned buffer's iterator to
         * avoid non-deterministic behavior:
         *
         * <pre>
         * Set s = SetUtils.synchronizedSet(mySet);
         * synchronized (s) {
         *     Iterator i = s.iterator();
         *     while (i.hasNext()) {
         *         process (i.next());
         *     }
         * }
         * </pre>
         *
         * This method uses the implementation in the decorators subpackage.
         *
         * @param set  the set to synchronize, must not be null
         * @return a synchronized set backed by the given set
         * @throws IllegalArgumentException  if the set is null
         */
        public static java.util.Set <Object> synchronizedSet(java.util.Set <Object> set)
        {
            return(SynchronizedSet.decorate(set));
        }