| Index: quiver/lib/src/core/optional.dart
|
| diff --git a/quiver/lib/src/core/optional.dart b/quiver/lib/src/core/optional.dart
|
| deleted file mode 100644
|
| index 6802229282e1520bb4b59f9f118ea9525972e941..0000000000000000000000000000000000000000
|
| --- a/quiver/lib/src/core/optional.dart
|
| +++ /dev/null
|
| @@ -1,130 +0,0 @@
|
| -// Copyright 2013 Google Inc. All Rights Reserved.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -
|
| -part of quiver.core;
|
| -
|
| -/**
|
| - * A value that might be absent.
|
| - *
|
| - * Use Optional as an alternative to allowing fields, parameters or return
|
| - * values to be null. It signals that a value is not required and provides
|
| - * convenience methods for dealing with the absent case.
|
| - */
|
| -class Optional<T> {
|
| - final T _value;
|
| -
|
| - /**
|
| - * Constructs an empty Optional.
|
| - */
|
| - const Optional.absent() : _value = null;
|
| -
|
| - /**
|
| - * Constructs an Optional of the given [value].
|
| - *
|
| - * Throws [ArgumentError] if [value] is null.
|
| - */
|
| - Optional.of(T value) : this._value = value {
|
| - if (this._value == null) throw new ArgumentError('Must not be null.');
|
| - }
|
| -
|
| - /**
|
| - * Constructs an Optional of the given [value].
|
| - *
|
| - * If [value] is null, returns [absent()].
|
| - */
|
| - const Optional.fromNullable(T value) : this._value = value;
|
| -
|
| - /**
|
| - * Whether the Optional contains a value.
|
| - */
|
| - bool get isPresent => _value != null;
|
| -
|
| - /**
|
| - * Gets the Optional value.
|
| - *
|
| - * Throws [StateError] if [value] is null.
|
| - */
|
| - T get value {
|
| - if (this._value == null) {
|
| - throw new StateError('value called on absent Optional.');
|
| - }
|
| - return _value;
|
| - }
|
| -
|
| - /**
|
| - * Executes a function if the Optional value is present.
|
| - */
|
| - void ifPresent(void ifPresent(T value)) {
|
| - if (isPresent) {
|
| - ifPresent(_value);
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Execution a function if the Optional value is absent.
|
| - */
|
| - void ifAbsent(void ifAbsent()) {
|
| - if (!isPresent) {
|
| - ifAbsent();
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Gets the Optional value with a default.
|
| - *
|
| - * The default is returned if the Optional is [absent()].
|
| - *
|
| - * Throws [ArgumentError] if [defaultValue] is null.
|
| - */
|
| - T or(T defaultValue) {
|
| - if (defaultValue == null) {
|
| - throw new ArgumentError('defaultValue must not be null.');
|
| - }
|
| - return _value == null ? defaultValue : _value;
|
| - }
|
| -
|
| - /**
|
| - * Gets the Optional value, or [null] if there is none.
|
| - */
|
| - T get orNull => _value;
|
| -
|
| - /**
|
| - * Transforms the Optional value.
|
| - *
|
| - * If the Optional is [absent()], returns [absent()] without applying the transformer.
|
| - *
|
| - * The transformer must not return [null]. If it does, an [ArgumentError] is thrown.
|
| - */
|
| - Optional transform(dynamic transformer(T value)) {
|
| - return _value == null
|
| - ? new Optional.absent()
|
| - : new Optional.of(transformer(_value));
|
| - }
|
| -
|
| - /**
|
| - * Delegates to the underlying [value] hashCode.
|
| - */
|
| - int get hashCode => _value.hashCode;
|
| -
|
| - /**
|
| - * Delegates to the underlying [value] operator==.
|
| - */
|
| - bool operator ==(o) => o is Optional && o._value == _value;
|
| -
|
| - String toString() {
|
| - return _value == null
|
| - ? 'Optional { absent }'
|
| - : 'Optional { value: ${_value} }';
|
| - }
|
| -}
|
|
|