customObjects property

List<ValueDef> customObjects

Implementation

List<ValueDef> get customObjects {
  var objects = <ValueDef>[];
  if (depth != 0 && type == ClassType.tObject) {
    objects.add(this);
  }

  if (childrenDef is List<ValueDef>) {
    var childrenObject = (childrenDef as List<ValueDef>)
        .map((e) => e.customObjects)
        .expand((element) => element)
        .toList();

    // 一個一個加, 重複的去除
    childrenObject.forEach((outerE) {
      var isExist = objects.any((innerE) {
        var result = innerE.isStructSame(outerE);
        if (innerE.key == 'ios') {
          print('$result');
        }
        return result;
      });

      if (!isExist) {
        objects.add(outerE);
      }
    });
  } else if (childrenDef is Map<String, ValueDef>) {
    var childrenObject = (childrenDef as Map<String, ValueDef>)
        .entries
        .map((e) => e.value.customObjects)
        .expand((element) => element)
        .toList();

    childrenObject.forEach((outerE) {
      var isExist = objects.any((innerE) {
        var result = innerE.isStructSame(outerE);
        return result;
      });

      if (!isExist) {
        objects.add(outerE);
      }
    });
  }
  return objects;
}