in src/langs/cpp/combinator.js [288:310]
emitModel(emitter, model) {
const model_name = this.resolveName(model.name);
if (_contain(this.definedModels, model_name)) {
return;
}
if (model.subObject.length) {
model.subObject.forEach(node => {
this.emitModel(emitter, node);
});
}
model.body.filter(node => is.prop(node)).forEach(item => {
if (is.object(item.type) && this.resolveName(item.type.objectName) === model_name) {
return;
} else if (is.array(item.type) && this.resolveName(item.type.itemType.objectName) === model_name) {
return;
} else if (is.map(item.type) && this.resolveName(item.type.valType.objectName) === model_name) {
return;
}
this.findUndefinedModel(emitter, item.type, [model_name]);
});
this.definedModels.push(model_name);
this.emitClass(emitter, model);
}