SHARE
TWEET
Untitled
a guest
Jan 29th, 2018
50
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
- package ru.whitebox.whiteboxcrm.base;
- import java8.util.function.Supplier;
- /**
- * Created by Denis Danilchuk on 17.01.18.
- */
- public class LazyVal<T> {
- private T field;
- private final Supplier<T> initializer;
- private final T stubVal;
- private final Condition initCondition;
- public LazyVal(Supplier<T> initializer, Condition initCondition, T stubVal) {
- this.initializer = initializer;
- this.initCondition = initCondition;
- this.stubVal = stubVal;
- }
- public LazyVal(Supplier<T> initializer) {
- this(initializer, () -> true, null);
- }
- public T get() {
- if (!initCondition.isSatisfied()) {
- return stubVal;
- }
- if (field == null) {
- field = initializer.get();
- }
- return field;
- }
- public interface Condition {
- boolean isSatisfied();
- }
- }
RAW Paste Data

