FutureValueResult<TOutput> class
class FutureValueResult<TOutput> { static final String _valueKey = 'value'; static final String _exceptionKey = 'exception'; final TOutput value; final exception; final Func1<Dynamic, TOutput> _outputSerializer; FutureValueResult(this.value, [this._outputSerializer]) : exception = null; FutureValueResult.fromException(this.exception) : value = null, _outputSerializer = null { requireArgumentNotNull(exception, 'exception'); } factory FutureValueResult.fromMap(Map value) { requireArgumentNotNull(value, 'value'); requireArgument(isMyMap(value), 'value'); final ex = value[_exceptionKey]; if(ex != null) { return new FutureValueResult.fromException(ex); } else { return new FutureValueResult(value[_valueKey]); } } bool get isException => exception != null; Map toMap() { // would love to use consts here, but the analyzer doesn't like it // DARTBUG: http://code.google.com/p/dart/issues/detail?id=4207 final rawValue = _serialize(value); return { 'value' : rawValue, 'exception' : exception }; } static bool isMyMap(Map value) { return value != null && value.length == 2 && value.containsKey(_valueKey) && value.containsKey(_exceptionKey); } bool operator ==(FutureValueResult other) { return other != null && other.value == value && other.exception == exception; } Dynamic _serialize(TOutput output) { if(_outputSerializer == null) { return output; } else { return _outputSerializer(output); } } }
Constructors
new FutureValueResult(TOutput value, [Func1 _outputSerializer]) #
FutureValueResult(this.value, [this._outputSerializer]) : exception = null;
new FutureValueResult.fromException(exception) #
FutureValueResult.fromException(this.exception) : value = null, _outputSerializer = null { requireArgumentNotNull(exception, 'exception'); }
factory FutureValueResult.fromMap(Map value) #
factory FutureValueResult.fromMap(Map value) { requireArgumentNotNull(value, 'value'); requireArgument(isMyMap(value), 'value'); final ex = value[_exceptionKey]; if(ex != null) { return new FutureValueResult.fromException(ex); } else { return new FutureValueResult(value[_valueKey]); } }
Static Methods
bool isMyMap(Map value) #
static bool isMyMap(Map value) { return value != null && value.length == 2 && value.containsKey(_valueKey) && value.containsKey(_exceptionKey); }
Properties
final exception #
final exception;
final bool isException #
bool get isException => exception != null;
final Type runtimeType #
A representation of the runtime type of the object.
external Type get runtimeType;
Operators
bool operator ==(FutureValueResult other) #
The equality operator.
The default behavior for all Object
s is to return true if and
only if this
and
other are the same object.
If a subclass overrides the equality operator it should override
the hashCode
method as well to maintain consistency.
bool operator ==(FutureValueResult other) { return other != null && other.value == value && other.exception == exception; }
Methods
new FutureValueResult(TOutput value, [Func1 _outputSerializer]) #
FutureValueResult(this.value, [this._outputSerializer]) : exception = null;
new FutureValueResult.fromException(exception) #
FutureValueResult.fromException(this.exception) : value = null, _outputSerializer = null { requireArgumentNotNull(exception, 'exception'); }
factory FutureValueResult.fromMap(Map value) #
factory FutureValueResult.fromMap(Map value) { requireArgumentNotNull(value, 'value'); requireArgument(isMyMap(value), 'value'); final ex = value[_exceptionKey]; if(ex != null) { return new FutureValueResult.fromException(ex); } else { return new FutureValueResult(value[_valueKey]); } }
int hashCode() #
Get a hash code for this object.
All objects have hash codes. Hash codes are guaranteed to be the
same for objects that are equal when compared using the equality
operator ==
. Other than that there are no guarantees about
the hash codes. They will not be consistent between runs and
there are no distribution guarantees.
If a subclass overrides hashCode
it should override the
equality operator as well to maintain consistency.
external int hashCode();
noSuchMethod(String name, List args) #
noSuchMethod
is invoked when users invoke a non-existant method
on an object. The name of the method and the arguments of the
invocation are passed to noSuchMethod
. If noSuchMethod
returns a value, that value becomes the result of the original
invocation.
The default behavior of noSuchMethod
is to throw a
noSuchMethodError
.
external Dynamic noSuchMethod(String name, List args);
const Object() #
Creates a new Object
instance.
Object
instances have no meaningful state, and are only useful
through their identity. An Object
instance is equal to itself
only.
const Object();
Map toMap() #
Map toMap() { // would love to use consts here, but the analyzer doesn't like it // DARTBUG: http://code.google.com/p/dart/issues/detail?id=4207 final rawValue = _serialize(value); return { 'value' : rawValue, 'exception' : exception }; }
String toString() #
Returns a string representation of this object.
external String toString();