instanceMemberGet method

  1. @override
dynamic instanceMemberGet(
  1. dynamic instance,
  2. String id, {
  3. bool ignoreUndefined = false,
})
override

Default HTExternalClass constructor. Fetch a instance member of the Dart class by the id, in the form of

object.key

Implementation

@override
dynamic instanceMemberGet(dynamic instance, String id,
    {bool ignoreUndefined = false}) {
  switch (id) {
    case 'toString':
      return ({object, positionalArgs, namedArgs}) => object.toString();
    case 'add':
      return ({object, positionalArgs, namedArgs}) =>
          object.add(positionalArgs.first);
    case 'addAll':
      return ({object, positionalArgs, namedArgs}) =>
          object.addAll(positionalArgs.first);
    case 'remove':
      return ({object, positionalArgs, namedArgs}) =>
          object.remove(positionalArgs.first);
    case 'lookup':
      return ({object, positionalArgs, namedArgs}) =>
          object.lookup(positionalArgs[0]);
    case 'removeAll':
      return ({object, positionalArgs, namedArgs}) =>
          object.removeAll(positionalArgs.first);
    case 'retainAll':
      return ({object, positionalArgs, namedArgs}) =>
          object.retainAll(positionalArgs.first);
    case 'removeWhere':
      return ({object, positionalArgs, namedArgs}) {
        HTFunction func = positionalArgs.first;
        object.removeWhere((element) {
          return func.call(positionalArgs: [element]) as bool;
        });
      };
    case 'retainWhere':
      return ({object, positionalArgs, namedArgs}) {
        HTFunction func = positionalArgs.first;
        object.retainWhere((element) {
          return func.call(positionalArgs: [element]) as bool;
        });
      };
    case 'containsAll':
      return ({object, positionalArgs, namedArgs}) =>
          object.containsAll(positionalArgs.first);
    case 'intersection':
      return ({object, positionalArgs, namedArgs}) =>
          object.intersection(positionalArgs.first);
    case 'union':
      return ({object, positionalArgs, namedArgs}) =>
          object.union(positionalArgs.first);
    case 'difference':
      return ({object, positionalArgs, namedArgs}) =>
          object.difference(positionalArgs.first);
    case 'clear':
      return ({object, positionalArgs, namedArgs}) => object.clear();
    case 'toSet':
      return ({object, positionalArgs, namedArgs}) => object.toSet();
    default:
      return superClass!.instanceMemberGet(instance, id);
  }
}