WaitableFactory.java
package io.github.jonloucks.concurrency.api;
import io.github.jonloucks.contracts.api.Contract;
/**
* Waitable Factory
*/
public interface WaitableFactory {
/**
* The Contract for the WaitableFactory
*/
Contract<WaitableFactory> CONTRACT = Contract.create(WaitableFactory.class);
/**
* Create a new Waitable with the given initial value
*
* @param initialValue (null is not allowed)
* @return the waitable
* @param <T> the type of waitable
* @throws IllegalArgumentException if initialValue is null
*/
<T> Waitable<T> create(T initialValue);
}