visitFieldType()

in lib/common_generator.js [992:1041]


  visitFieldType(value, node, modelName, useEnum) {
    if (value.fieldType === 'array') {
      // basic type
      this.emit(`java.util.List < `);
      if (value.fieldItemType.tag === 8) {
        this.emit(`${collectionType(_type(value.fieldItemType.lexeme))} `);
      } else if (value.fieldItemType.type === 'map') {
        this.visitType(value.fieldItemType);
      } else if (value.fieldItemType.fieldType === 'array') {
        this.visitFieldType(value.fieldItemType, node, modelName);
      } else {
        if (node.fieldValue.itemType) {
          this.emit(_subModelName(node.fieldValue.itemType, this.ctx.conflictModelNameMap, this.ctx.allModleNameMap));
        } else {
          this.emit(`${_name(node.fieldValue.fieldItemType)} `);
        }
      }
      this.emit(`> `);
    } else if (value.fieldType === 'map') {
      this.emit(`java.util.Map < ${collectionType(_type(value.keyType.lexeme))}, `);
      if (value.valueType.type) {
        this.visitType(value.valueType);
      } else {
        this.emit(`${collectionType(_type(value.valueType.lexeme))} `);
      }
      this.emit('> ');
    } else if (typeof value.fieldType === 'string') {
      this.emit(`${_type(value.fieldType)} `);
    } else if (value.fieldType) {
      if (value.fieldType.idType && value.fieldType.idType === 'module') {
        var className = this.ctx.imports[`${_type(value.fieldType.lexeme)}`].className || 'DefaultAsyncClient';
        this.emit(this.ctx.imports[`${_type(value.fieldType.lexeme)}`].package);
        this.emit(`.${className} `);
      } else if (value.fieldType.type && value.fieldType.type === 'moduleModel') {
        this.emit(this.ctx.imports[_name(value.fieldType.path[0])].package);
        this.emit(`.models.${_name(value.fieldType.path[1])} `);
      } else if (value.fieldType.idType && value.fieldType.idType === 'enum') {
        if (useEnum) {
          this.emit(`${_type(value.fieldType.lexeme)} `);
        } else {
          this.emit(`${_type(this.ctx.enumMap[value.fieldType.lexeme])} `);
        }
      } else {
        this.emit(`${_type(value.fieldType.lexeme)} `);
      }
    } else {
      this.emit(_subModelName([modelName, _name(node.fieldName)].join('.'), this.ctx.conflictModelNameMap, this.ctx.allModleNameMap));
      this.emit(' ');
    }
  }