Expirable.java
- package swingtree.style;
- import swingtree.animation.LifeSpan;
- import java.util.Objects;
- /**
- * A wrapper class for a payload that has a lifetime which
- * is used to determine if the payload is expired or not.
- **/
- final class Expirable<T>
- {
- private final LifeSpan _lifeSpan;
- private final T _value;
- Expirable( LifeSpan lifeSpan, T payload ) {
- _lifeSpan = Objects.requireNonNull(lifeSpan);
- _value = Objects.requireNonNull(payload);
- }
- /**
- * Determines if the lifetime of this instance is expired,
- * which is based on the current time and the start and end
- * of the lifespan.
- * @return True if the lifetime of this instance is expired,
- * false otherwise.
- **/
- boolean isExpired() { return _lifeSpan.isExpired(); }
- /**
- * Exposes the thing that can expire.
- * @return The payload of this instance.
- **/
- T get() { return _value; }
- /**
- * Exposes the lifespan of this instance,
- * which is used to determine if the payload is expired.
- * @return The time span of this instance.
- **/
- LifeSpan getLifeSpan() { return _lifeSpan; }
- }