toString method

  1. @override
String toString()
override

转换为易读的字符串描述

Implementation

@override
String toString() {
  switch (metaType) {
    case VmMetaType.externalValue:
      return 'VmValue<externalValue> ===> ${_valueType.identifier} $identifier --> ${_valueData.runtimeType} $_valueData';
    case VmMetaType.externalSmart:
      if (_valueData is VmValue) {
        return 'VmValue<externalSmart> ===> ${_valueType.identifier} $identifier #smart{ $_valueData }';
      } else {
        return 'VmValue<externalSmart> ===> ${_valueType.identifier} $identifier --> ${_valueData.runtimeType} $_valueData';
      }
    case VmMetaType.externalSuper:
      return 'VmValue<externalSuper> ===> ${_valueType.identifier} $identifier #super{ $_valueData }';
    case VmMetaType.internalApply:
      final typeArg1 = metaData.isIniter ? 'initer' : (metaData.isStatic ? 'static' : 'normal');
      final typeArg2 = metaData.isGetter ? 'getter' : (metaData.isSetter ? 'setter' : 'normal');
      final listArgs = '[${metaData.listArguments.map((e) => '${e.isClassField ? 'this.' : (e.isSuperField ? 'super.' : '')}${e.fieldName}${e.fieldValue == null ? '' : ' = ${e.getValue()}'}').join(', ')}]';
      final nameArgs = '{${metaData.nameArguments.map((e) => '${e.isClassField ? 'this.' : (e.isSuperField ? 'super.' : '')}${e.fieldName}${e.fieldValue == null ? '' : ' = ${e.getValue()}'}').join(', ')}}';
      return 'VmValue<internalApply> ===> ${_valueType.identifier} $identifier --> $typeArg1 $typeArg2 $listArgs $nameArgs';
    case VmMetaType.internalValue:
      return 'VmValue<internalValue> ===> ${_valueType.identifier} $identifier --> ${_valueData.runtimeType} $_valueData';
    case VmMetaType.internalAlias:
      return 'VmValue<internalAlias> ===> ${_valueType.identifier} $identifier #alias{ $_valueData }';
  }
}