fromDotNotation static method

Data? fromDotNotation(
  1. Data data,
  2. DotNotation dotnotation
)

Implementation

static Data? fromDotNotation(Data data, DotNotation dotnotation) {
  try {
    if (data.isEmpty) return null;

    dynamic myData = data;
    if (dotnotation.isEmpty) return myData;

    // parse list
    for (NotationSegment? property in dotnotation) {
      if (property != null) {
        if (myData is Map) {
          if (!myData.containsKey(property.name)) {
            myData = null;
            break;
          }
          myData = myData[property.name];
        } else if (myData is List) {
          if (myData.length < property.offset) {
            myData = null;
            break;
          }
          myData = myData[property.offset];
          if ((myData is Map) && (myData.containsKey(property.name))) {
            myData = myData[property.name];
          }
        } else {
          myData = null;
          break;
        }
      }
    }

    return Data(data: myData);
  } catch (e) {
    return null;
  }
}