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