customObjects property
Returns all nested custom object definitions.
Implementation
List<ValueDef> get customObjects {
var objects = <ValueDef>[];
if (depth != 0 && type == ClassType.tObject) {
objects.add(this);
}
if (childrenDef is List<ValueDef>) {
List<ValueDef> childrenObject = (childrenDef as List<ValueDef>)
.map((e) => e.customObjects)
.expand((element) => element)
.toList();
for (var outerE in childrenObject) {
bool isExist = objects.any((innerE) => innerE.isStructSame(outerE));
if (!isExist) {
objects.add(outerE);
}
}
} else if (childrenDef is Map<String, ValueDef>) {
List<ValueDef> childrenObject = (childrenDef as Map<String, ValueDef>)
.entries
.map((e) => e.value.customObjects)
.expand((element) => element)
.toList();
for (var outerE in childrenObject) {
bool isExist = objects.any((innerE) {
bool result = innerE.isStructSame(outerE);
return result;
});
if (!isExist) {
objects.add(outerE);
}
}
}
return objects;
}