get method

dynamic get(
  1. Object key
)

Implementation

dynamic get(Object key) {
  DataKey k;

  if (key is String) {
    k = DataKey(key);
  } else {
    if (key is DataSelectDate) {
      return DateTimeUtils.dateFormat(get(key.key), format: key.format);
    }
    if ((key is! DataKey)) {
      throw "Please fill key with String or DataKey value not ${key.runtimeType}";
    }
    k = key;
  }
  try {
    dynamic value = {};
    switch (k.key) {
      case "#id":
        value = id;
        break;
      case "#createdAt":
        value = createdAt;
        break;
      case "#updatedAt":
        value = updatedAt;
        break;
      default:
        {
          List<String> path = k.key.split(".");
          value = data;
          for (String p in path) {
            value = value[p];
          }
        }
    }
    if (value == null) throw "value null";
    return value;
  } catch (e) {
    if (k.onKeyCatch != null) {
      get(k.onKeyCatch!);
    }
    return null;
  }
}