summaryrefslogtreecommitdiff
path: root/dotnet/Mammoth/Couscous/java/util/Optional.cs
diff options
context:
space:
mode:
Diffstat (limited to 'dotnet/Mammoth/Couscous/java/util/Optional.cs')
-rw-r--r--dotnet/Mammoth/Couscous/java/util/Optional.cs103
1 files changed, 0 insertions, 103 deletions
diff --git a/dotnet/Mammoth/Couscous/java/util/Optional.cs b/dotnet/Mammoth/Couscous/java/util/Optional.cs
deleted file mode 100644
index f295688..0000000
--- a/dotnet/Mammoth/Couscous/java/util/Optional.cs
+++ /dev/null
@@ -1,103 +0,0 @@
-using System;
-using Mammoth.Couscous.java.util.function;
-
-namespace Mammoth.Couscous.java.util
-{
- internal interface Optional<T>
- {
- bool isPresent();
- Optional<U> map<U>(Function<T, U> function);
- Optional<U> flatMap<U>(Function<T, Optional<U>> function);
- T orElse(T value);
- T orElseGet(Supplier<T> supplier);
- T orElseThrow<TException>(Supplier<TException> exceptionSupplier) where TException : Exception;
- T get();
- void ifPresent(Consumer<T> consumer);
- }
-
- internal class None<T> : Optional<T> {
- public bool isPresent() {
- return false;
- }
-
- public Optional<U> map<U>(Function<T, U> function) {
- return new None<U>();
- }
-
- public Optional<U> flatMap<U>(Function<T, Optional<U>> function) {
- return new None<U>();
- }
-
- public T orElse(T value) {
- return value;
- }
-
- public T orElseGet(Supplier<T> supplier) {
- return supplier.get();
- }
-
- public T orElseThrow<TException>(Supplier<TException> exceptionSupplier) where TException : Exception {
- throw exceptionSupplier.get();
- }
-
- public T get() {
- throw new NoSuchElementException();
- }
-
- public void ifPresent(Consumer<T> consumer) {
- }
- }
-
- internal class Some<T> : Optional<T> {
- private readonly T _value;
-
- internal Some(T value) {
- _value = value;
- }
-
- public bool isPresent() {
- return true;
- }
-
- public Optional<U> map<U>(Function<T, U> function) {
- return new Some<U>(function.apply(_value));
- }
-
- public Optional<U> flatMap<U>(Function<T, Optional<U>> function) {
- return function.apply(_value);
- }
-
- public T orElse(T value) {
- return _value;
- }
-
- public T orElseGet(Supplier<T> supplier) {
- return _value;
- }
-
- public T orElseThrow<TException>(Supplier<TException> exceptionSupplier) where TException : Exception {
- return _value;
- }
-
- public T get() {
- return _value;
- }
-
- public void ifPresent(Consumer<T> consumer) {
- consumer.accept(_value);
- }
- }
-
- internal static class Optional
- {
- internal static Optional<T> empty<T>()
- {
- return new None<T>();
- }
-
- internal static Optional<T> of<T>(T value)
- {
- return new Some<T> (value);
- }
- }
-}