package com.ecep.contract.converter;

import com.ecep.contract.service.InventoryCatalogService;
import com.ecep.contract.vo.InventoryCatalogVo;
import javafx.util.StringConverter;

/**
 * 存货分类字符串转换器
 * 用于在UI组件中显示存货分类信息并支持从字符串还原存货分类对象
 */
public class InventoryCatalogStringConverter<T> extends StringConverter<InventoryCatalogVo> {

    /** 存货分类服务，用于从字符串查找对应的存货分类对象 */
    private final InventoryCatalogService service;

    /**
     * 构造函数
     * 
     * @param service 存货分类服务实例
     */
    public InventoryCatalogStringConverter(InventoryCatalogService service) {
        this.service = service;
    }

    /**
     * 将存货分类对象转换为字符串表示
     * 
     * @param object 存货分类对象
     * @return 存货分类的名称，如果对象为null则返回空字符串
     */
    @Override
    public String toString(InventoryCatalogVo object) {
        return object == null ? "" : object.getName();
    }

    /**
     * 从字符串还原存货分类对象
     * 
     * @param string 存货分类名称
     * @return 对应的存货分类对象，如果未找到则返回null
     */
    @Override
    public InventoryCatalogVo fromString(String string) {
        return service.findByName(string);
    }
}