Dart DocumentationbotProperty<T>

Property<T> class

class Property<T> extends Attachable {
  static const Object Undefined = const _UndefinedValue();

  final T defaultValue;

  Property(String name, [T this.defaultValue = null]) : super(name);

  T get(AttachableObject obj, [Func1<AttachableObject, T> ifAbsent = null]){
    var coreValue = getCore(obj, ifAbsent);
    if(!identical(coreValue, Undefined)){
      return coreValue;
    }
    else{
      return defaultValue;
    }
  }

  Object getCore(AttachableObject obj, [Func1<AttachableObject, T> ifAbsent = null]){
    return obj._getValueOrUndefined(this, obj, ifAbsent);
  }

  void set(AttachableObject obj, T value){
    assert(!identical(value, Undefined));
    obj._set(this, value);
  }

  void clear(AttachableObject obj) => obj._remove(this);

  bool isSet(AttachableObject obj) => obj._isSet(this);

  GlobalId addHandler(AttachableObject obj, Action1<Property> handler){
    return obj._addHandler(this, handler);
  }

  bool removeHandler(AttachableObject obj, GlobalId handlerId){
    return obj._removeHandler(this, handlerId);
  }

  String toString() => "Property '$name'";
}

Extends

Attachable > Property<T>

Constructors

new Property(String name, [T defaultValue = null]) #

Property(String name, [T this.defaultValue = null]) : super(name);

Static Properties

const Object Undefined #

static const Object Undefined = const _UndefinedValue();

Properties

final T defaultValue #

final T defaultValue;

final String name #

inherited from Attachable
final String name;

final Type runtimeType #

inherited from Object

A representation of the runtime type of the object.

external Type get runtimeType;

Operators

bool operator ==(other) #

inherited from Object

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.

bool operator ==(other) => identical(this, other);

Methods

GlobalId addHandler(AttachableObject obj, Action1 handler) #

GlobalId addHandler(AttachableObject obj, Action1<Property> handler){
  return obj._addHandler(this, handler);
}

new Attachable(String name) #

inherited from Attachable
Attachable(this.name);

void clear(AttachableObject obj) #

void clear(AttachableObject obj) => obj._remove(this);

T get(AttachableObject obj, [Func1 ifAbsent = null]) #

T get(AttachableObject obj, [Func1<AttachableObject, T> ifAbsent = null]){
  var coreValue = getCore(obj, ifAbsent);
  if(!identical(coreValue, Undefined)){
    return coreValue;
  }
  else{
    return defaultValue;
  }
}

Object getCore(AttachableObject obj, [Func1 ifAbsent = null]) #

Object getCore(AttachableObject obj, [Func1<AttachableObject, T> ifAbsent = null]){
  return obj._getValueOrUndefined(this, obj, ifAbsent);
}

abstract int hashCode() #

inherited from Hashable

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.

docs inherited from Object

bool isSet(AttachableObject obj) #

bool isSet(AttachableObject obj) => obj._isSet(this);

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

new Property(String name, [T defaultValue = null]) #

Property(String name, [T this.defaultValue = null]) : super(name);

bool removeHandler(AttachableObject obj, GlobalId handlerId) #

bool removeHandler(AttachableObject obj, GlobalId handlerId){
  return obj._removeHandler(this, handlerId);
}

void set(AttachableObject obj, T value) #

void set(AttachableObject obj, T value){
  assert(!identical(value, Undefined));
  obj._set(this, value);
}

String toString() #

Returns a string representation of this object.

docs inherited from Object
String toString() => "Property '$name'";