toString method
转换为易读的字符串描述
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 }';
}
}