Java Thread Callable call(final Callable c)

Here you can find the source of call(final Callable c)

Description

call

License

Open Source License

Declaration

public final static <T> T call(final Callable<T> c) 

Method Source Code

//package com.java2s;
/**// w w w .  j a v  a2 s .  c  o  m
 * The contents of this file are subject to the Regenstrief Public License
 * Version 1.0 (the "License"); you may not use this file except in compliance with the License.
 * Please contact Regenstrief Institute if you would like to obtain a copy of the license.
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations
 * under the License.
 *
 * Copyright (C) Regenstrief Institute.  All Rights Reserved.
 */

import java.util.concurrent.Callable;

public class Main {
    public final static <T> T call(final Callable<T> c) {
        try {
            return c == null ? null : c.call();
        } catch (final Exception e) {
            throw toRuntimeException(e);
        }
    }

    /**
     * Creates a RuntimeException from the Throwable if it isn't already a RuntimeException
     * 
     * @param e the Throwable
     * @return the RuntimeException
     **/
    public final static RuntimeException toRuntimeException(final Throwable e) {
        if (e == null) {
            // Without this check, toRuntimeException(e.getCause()) creates a confusing RuntimeException if cause is null
            return new NullPointerException("Problem without an Exception");
        }
        return e instanceof RuntimeException ? (RuntimeException) e : new RuntimeException(e);
    }
}

Related

  1. call(Callable callable)
  2. callableListCreator()
  3. callConditionAndReturnResult(Callable condition)
  4. callInLoader(Callable body, ClassLoader loader)
  5. callInLocale(Locale locale, Callable task)