package org.testory.common; import static org.testory.common.Checks.checkNotNull; import java.util.NoSuchElementException; public class Optional<T> { private final T value; private Optional(T value) { this.value = value; } public static <T> Optional<T> empty() { return new Optional<>(null); } public boolean isPresent() { return value != null; } public T get() { if (value == null) { throw new NoSuchElementException(); } return value; } public static <T> Optional<T> of(T value) { checkNotNull(value); return new Optional<>(value); } }