toNestedStructureMap method

  1. @override
KeyValueRoster<Object, Object> toNestedStructureMap()
override

条件分岐で利用するため用意した.

Implementation

@override
KeyValueRoster toNestedStructureMap() {

    final List<KeyValue> list = [];
    int index = 0;

    for (final i in values) {

        final type = i.runtimeType.toString();
        final key = type + '[' + index.toString() + ']';
        late final Object value;

        switch (i) {
        case ToShorthandSignature(): value = i.toShorthand();
        case ToNestedStructureMapSignature(): value = i.toNestedStructureMap();
        case ValuePattern(): value = i.value;
        case EnumPattern(): value = i.value;
        case _: value = i.toString();
        }

        final result = KeyValue(key, value);

        list.add(result);

        index = index + 1;

    }

    // 一意となる index が suffix として付与されれるので constant で ok.
    final result = KeyValueRoster.constant(list);

    return result;

}