map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult object(
    1. SchemaObject value
    ),
  2. required TResult boolean(
    1. SchemaBoolean value
    ),
  3. required TResult string(
    1. SchemaString value
    ),
  4. required TResult integer(
    1. SchemaInteger value
    ),
  5. required TResult number(
    1. SchemaNumber value
    ),
  6. required TResult enumeration(
    1. SchemaEnum value
    ),
  7. required TResult array(
    1. SchemaArray value
    ),
  8. required TResult map(
    1. SchemaMap value
    ),
})

A switch-like method, using callbacks.

Callbacks receives the raw object, upcasted. It is equivalent to doing:

switch (sealedClass) {
  case final Subclass value:
    return ...;
  case final Subclass2 value:
    return ...;
}

Implementation

@optionalTypeArgs TResult map<TResult extends Object?>({required TResult Function( SchemaObject value)  object,required TResult Function( SchemaBoolean value)  boolean,required TResult Function( SchemaString value)  string,required TResult Function( SchemaInteger value)  integer,required TResult Function( SchemaNumber value)  number,required TResult Function( SchemaEnum value)  enumeration,required TResult Function( SchemaArray value)  array,required TResult Function( SchemaMap value)  map,}){
final _that = this;
switch (_that) {
case SchemaObject():
return object(_that);case SchemaBoolean():
return boolean(_that);case SchemaString():
return string(_that);case SchemaInteger():
return integer(_that);case SchemaNumber():
return number(_that);case SchemaEnum():
return enumeration(_that);case SchemaArray():
return array(_that);case SchemaMap():
return map(_that);case _:
  throw StateError('Unexpected subclass');

}
}