in lib/generator.js [776:826]
visitFieldType(value, node, modelName) {
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.conflictModelNameMap, this.allModleNameMap, this.enableMinimizeModelName));
} else if (value.fieldItemType) {
this.emit(`${_name(value.fieldItemType)}`);
} 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.imports[`${_type(value.fieldType.lexeme)}`].className || 'Client';
this.emit(this.imports[`${_type(value.fieldType.lexeme)}`].package);
this.emit(`.${className}`);
} else if (value.fieldType.idType && value.fieldType.idType === 'typedef') {
this.emit(this.typeRelover(value.fieldType));
} else if (value.fieldType.type && value.fieldType.type === 'moduleModel') {
this.emit(this.imports[_name(value.fieldType.path[0])].package);
this.emit(`.models.${_name(value.fieldType.path[1])}`);
} else if (value.fieldType.type && value.fieldType.type === 'moduleTypedef') {
for (let i = 1; i < value.fieldType.path.length; i++) {
this.emit(this.typeRelover(value.fieldType.path[i], value.fieldType.path[0]));
}
} else {
this.emit(`${_type(value.fieldType.lexeme)}`);
}
} else {
this.emit(_subModelName([modelName, _name(node.fieldName)].join('.'), this.conflictModelNameMap, this.allModleNameMap, this.enableMinimizeModelName));
}
}