aboutsummaryrefslogtreecommitdiff
path: root/dotnet/Mammoth/Couscous/java/util/Optional.cs
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-06-04 16:03:56 +0100
committerMichael Williamson <mike@zwobble.org>2016-06-04 16:03:56 +0100
commit45e530dceda42282fae56b4c4f5fa7865f57899d (patch)
tree685868f4bf78c64e851cbcdafd674e887bc782a5 /dotnet/Mammoth/Couscous/java/util/Optional.cs
parentb5a83b1cb96d410e325ff8b733d550295376d8c7 (diff)
Remove dotnet (use submodule from dotnet repo instead)
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);
- }
- }
-}