Dart Documentationbot_asyncFutureValueResult<TOutput>

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 #

inherited from Object

A representation of the runtime type of the object.

external Type get runtimeType;

final TOutput value #

final TOutput value;

Operators

bool operator ==(FutureValueResult other) #

The equality operator.

The default behavior for all Objects 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.

docs inherited from Object
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() #

inherited from Object

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) #

inherited from Object

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() #

inherited from 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() #

inherited from Object

Returns a string representation of this object.

external String toString();