package com.muyu.rule.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.etl.domain.DataValue;
import com.muyu.rule.common.domain.DataValueFie;
import com.muyu.rule.common.domain.DataValueRow;
import com.muyu.rule.common.domain.DataValueRows;
import com.muyu.rule.common.domain.RuleEngineVersion;

import java.util.List;

/**
 * @Author：张承志
 * @Package：com.muyu.rule.server.service
 * @Project：cloud-etl-rule
 * @name：RuleEngineService
 * @Date：2024/8/25 14:16
 */
public interface RuleEngineVersionService extends IService<RuleEngineVersion> {

    /**
     * 通过id查询规则引擎和对应的规则引擎版本
     * @param id
     * @return
     */
    List<RuleEngineVersion> selectRuleEngineVersion(Long id);

    /**
     * 启用引擎接口
     * @param id
     */

    void activate(Long id);

    /**
     * 禁用引擎接口
     * @param id
     */
    void disable(Long id);



    /**
     *
     * @param versionClazz 具体代码
     * @param className 类的名
     */

    void Upload(String versionClazz,String className);

    /**
     * 从OSS服务器读取文件的接口
     * @param className 类名
     * @return 从Oss读取数据
     */
    Object readByOss(String className);

    /**
     * 对java源代码进行编译
     * @param className 类名
     * @param versionClazz 源代码
     */
    void complierClass(String className, String versionClazz);


    /**
     *对规则引擎进行类加载
     * @param className 规则引擎类名
     */

  // void loadRuleEngineClass(String className);




    /**
     * 测试数据
     *
     * @param className 类名
     * @param dataValue ktvl数据
     * @return
     */

    public DataValue testEngine(String className, DataValueFie dataValue);
    public DataValue[] testEngine(String className, DataValueRow dataValue);

    public  DataValue[][]  testEngine( String className, DataValueRows dataValues);

}
