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 'toPercentageString':
      return ({object, positionalArgs, namedArgs}) {
        final fractionDigits = positionalArgs.first;
        return (object * 100).toStringAsFixed(fractionDigits).toString() +
            HTLocale.current.percentageMark;
      };
    case 'compareTo':
      return ({object, positionalArgs, namedArgs}) =>
          object.compareTo(positionalArgs[0]);
    case 'remainder':
      return ({object, positionalArgs, namedArgs}) =>
          object.remainder(positionalArgs[0]);
    case 'isNaN':
      return instance.isNaN;
    case 'isNegative':
      return instance.isNegative;
    case 'isInfinite':
      return instance.isInfinite;
    case 'isFinite':
      return instance.isFinite;
    case 'abs':
      return ({object, positionalArgs, namedArgs}) => object.abs();
    case 'sign':
      return instance.sign;
    case 'round':
      return ({object, positionalArgs, namedArgs}) => object.round();
    case 'floor':
      return ({object, positionalArgs, namedArgs}) => object.floor();
    case 'ceil':
      return ({object, positionalArgs, namedArgs}) => object.ceil();
    case 'truncate':
      return ({object, positionalArgs, namedArgs}) => object.truncate();
    case 'roundToDouble':
      return ({object, positionalArgs, namedArgs}) => object.roundToDouble();
    case 'floorToDouble':
      return ({object, positionalArgs, namedArgs}) => object.floorToDouble();
    case 'ceilToDouble':
      return ({object, positionalArgs, namedArgs}) => object.ceilToDouble();
    case 'truncateToDouble':
      return ({object, positionalArgs, namedArgs}) =>
          object.truncateToDouble();
    case 'toInt':
      return ({object, positionalArgs, namedArgs}) => object.toInt();
    case 'toDouble':
      return ({object, positionalArgs, namedArgs}) => object.toDouble();
    case 'clamp':
      return ({object, positionalArgs, namedArgs}) =>
          object.clamp(positionalArgs[0], positionalArgs[1]);
    case 'toStringAsFixed':
      return ({object, positionalArgs, namedArgs}) =>
          object.toStringAsFixed(positionalArgs[0]);
    case 'toStringAsExponential':
      return ({object, positionalArgs, namedArgs}) =>
          object.toStringAsExponential(positionalArgs[0]);
    case 'toStringAsPrecision':
      return ({object, positionalArgs, namedArgs}) =>
          object.toStringAsPrecision(positionalArgs[0]);
    case 'toString':
      return ({object, positionalArgs, namedArgs}) => object.toString();
    default:
      throw HTError.undefined(id);
  }
}