emitModel()

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