package com.easyooo.framework.rule.impl; import java.io.File; import com.easyooo.framework.rule.Rule; import com.easyooo.framework.rule.RuleClassLoader; import com.easyooo.framework.rule.RuleException; /** * 脚本加载器,默认情况下,根据模板文件生成脚本内容 * 并在写入{@link ScriptWriter#DEFAULT_OUTPUT_PATH}目录, * * 一旦脚本文件存在之后,便不会重写源文件,直接编译成 * * @author Killer */ public abstract class AbstractRuleClassLoader implements RuleClassLoader { /** * 将规则加载至内存 */ @Override public Class<?> loadClass(Rule rule)throws RuleException{ ScriptWriter sw = new ScriptWriter(rule); File sourceFile = sw.createOrRead(); return loadClass(sourceFile, sw); } /** * 由子类实现具体类的加载过程 * * @param sourceFile 给定了源文件 * @return * @throws RuleException */ public abstract Class<?> loadClass(File sourceFile, ScriptWriter sw)throws RuleException; }