/*
 * Copyright 2010 TranceCode
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License.  You may obtain a copy
 * of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */package org.trancecode.core;

import java.util.concurrent.TimeUnit;

/**
 * @author Herve Quiroz
 */
public final class TcThreads
{
    private TcThreads()
    {
        // No instantiation
    }

    public static boolean sleep(final long duration, final TimeUnit timeUnit)
    {
        try
        {
            Thread.sleep(timeUnit.toMillis(duration));
        }
        catch (final InterruptedException e)
        {
            return true;
        }

        return false;
    }

    public static boolean join(final Thread thread)
    {
        try
        {
            thread.join();
        }
        catch (final InterruptedException e)
        {
            return true;
        }

        return false;
    }
}

@@ -657,16 +657,90 @@
 t;%0A%0A/**%0A
+ * Utility methods related to %7B@link Thread%7D and %7B@link ThreadLocal%7D.%0A * %0A
  * @auth
@@ -1381,11 +1381,689 @@
 e;%0A    %7D
+%0A%0A    /**%0A     * Sets the value of a %7B@link ThreadLocal%7D and return the previous value.%0A     */%0A    public static %3CT%3E T set(final ThreadLocal%3CT%3E threadLocal, final T value)%0A    %7B%0A        return set(threadLocal, value, null);%0A    %7D%0A%0A    /**%0A     * Sets the value of a %7B@link ThreadLocal%7D and return the previous value, or%0A     * the specified default value if %7B@code null%7D.%0A     */%0A    public static %3CT%3E T set(final ThreadLocal%3CT%3E threadLocal, final T value, final T defaultValue)%0A    %7B%0A        final T oldValue = threadLocal.get();%0A        threadLocal.set(value);%0A        if (oldValue == null)%0A        %7B%0A            return defaultValue;%0A        %7D%0A%0A        return oldValue;%0A    %7D
 %0A%7D%0A

Add TcThreads.set()