/** * Copyright (c) Rich Hickey. All rights reserved. * The use and distribution terms for this software are covered by the * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) * which can be found in the file epl-v10.html at the root of this distribution. * By using this software in any fashion, you are agreeing to be bound by * the terms of this license. * You must not remove this notice, or any other, from this software. **/ /* rich Feb 9, 2009 */ package clojure.lang; import java.util.function.BooleanSupplier; import java.util.function.DoubleSupplier; import java.util.function.IntSupplier; import java.util.function.LongSupplier; import java.util.function.Supplier; public interface IDeref extends Supplier, BooleanSupplier, IntSupplier, LongSupplier, DoubleSupplier { Object deref() ; @Override default Object get() { return deref(); } @Override default boolean getAsBoolean() { return RT.booleanCast(deref()); } @Override default int getAsInt() { return RT.intCast(deref()); } @Override default long getAsLong() { return RT.longCast(deref()); } @Override default double getAsDouble() { return RT.doubleCast(deref()); } }