package com.ecep.contract.converter;

import org.springframework.stereotype.Component;

import com.ecep.contract.service.UnitService;
import com.ecep.contract.vo.UnitVo;

import javafx.util.StringConverter;

/**
 * UnitVo的StringConverter实现，用于JavaFX控件中的显示和转换
 */
@Component
public class UnitStringConverter extends StringConverter<UnitVo> {
    private final UnitService unitService;

    /**
     * 构造函数
     * 
     * @param unitService UnitService实例
     */
    public UnitStringConverter(UnitService unitService) {
        this.unitService = unitService;
    }

    /**
     * 将UnitVo对象转换为字符串
     * 
     * @param object UnitVo对象
     * @return 转换后的字符串
     */
    @Override
    public String toString(UnitVo object) {
        if (object == null) {
            return "";
        }
        return object.getName();
    }

    /**
     * 将字符串转换为UnitVo对象
     * 
     * @param string 字符串
     * @return 转换后的UnitVo对象
     */
    @Override
    public UnitVo fromString(String string) {
        if (string == null || string.isEmpty()) {
            return null;
        }
        return unitService.findByName(string);
    }
}