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() {
  if (key.isNullOrEmpty) {
    throw InvalidAtKeyException('Key cannot be null or empty');
  }
  //enforcing lower-case on AtKey.key
  key = key?.toLowerCase();
  // If metadata.isPublic is true and metadata.isCached is true,
  // return cached public key
  if (key!.startsWith('cached:public:') ||
      (metadata != null &&
          (metadata!.isPublic != null && metadata!.isPublic!) &&
          (metadata!.isCached))) {
    return 'cached:public:$key${_dotNamespaceIfPresent()}$_sharedBy';
  }

  // If metadata.isPublic is true, return public key
  if (key!.startsWith('public:') ||
      (metadata != null &&
          metadata!.isPublic != null &&
          metadata!.isPublic!)) {
    return 'public:$key${_dotNamespaceIfPresent()}$_sharedBy';
  }

  //If metadata.isCached is true, return shared cached key
  if (key!.startsWith('cached:') ||
      (metadata != null && metadata!.isCached)) {
    return 'cached:$_sharedWith:$key${_dotNamespaceIfPresent()}$_sharedBy';
  }

  // If key starts with privatekey:, return private key
  if ((metadata != null && metadata!.isHidden) ||
      key!.startsWith('privatekey:')) {
    if (key!.startsWith('privatekey:')) {
      return '$key'.toLowerCase();
    }
    return 'privatekey:$key${_dotNamespaceIfPresent()}'.toLowerCase();
  }

  //If _sharedWith is not null, return sharedKey
  if (_sharedWith != null && _sharedWith!.isNotEmpty) {
    return '$_sharedWith:$key${_dotNamespaceIfPresent()}$_sharedBy';
  }

  // if key starts with local: or isLocal set to true, return local key
  if (isLocal == true) {
    String localKey = '$key${_dotNamespaceIfPresent()}$sharedBy';
    if (localKey.startsWith('local:')) {
      return localKey;
    }
    return 'local:$localKey';
  }

  // Defaults to return a self key.
  return '$key${_dotNamespaceIfPresent()}$_sharedBy';
}