toString method

  1. @override
String toString()
override

A string representation of this object.

Some classes have a default textual representation, often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

Other classes have no meaningful textual representation that a program will care about. Such classes will typically override toString to provide useful information when inspecting the object, mainly for debugging or logging.

Implementation

@override
String toString() {
  var serverResponseDelayStr = serverResponseDelay != null
      ? ', serverResponseDelay: ${serverResponseDelay!.toStringUnit()}'
      : '';

  var domainsStr = domainsRoots.isNotEmpty
      ? ', domains: [${domainsRoots.entries.map((e) {
          var key = e.key;
          var val = e.value;

          return '${key is RegExp ? 'r/${key.pattern}/' : '`$key`'}=${val.path}';
        }).join(' ; ')}]'
      : '';

  var secureStr = securePort < 10
      ? ''
      : ', securePort: $securePort, '
            'letsEncrypt: $letsEncrypt'
            '${(letsEncrypt ? (letsEncryptProduction ? ' @production' : ' @staging') : '')}, '
            'letsEncryptDirectory: ${letsEncryptDirectory?.path}';

  return 'APIServer[${BonesAPI.VERSION}]{ '
      'apiRoot: ${apiRoot.name}[${apiRoot.version}] (${apiRoot.runtimeTypeNameUnsafe}), '
      'address: $address, '
      'port: $port$serverResponseDelayStr$secureStr, '
      'totalWorkers: $totalWorkers, '
      'cacheStaticFilesResponses: $cacheStaticFilesResponses, '
      'hotReload: $hotReload (${APIHotReload.get().isEnabled ? 'enabled' : 'disabled'}), '
      'cookieless: $cookieless, '
      'SESSIONID: $useSessionID, '
      'started: $isStarted, '
      'stopped: $isStopped$domainsStr '
      '}';
}