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;
  }
}