package org.fastcatsearch.job.plugin; import java.io.IOException; import org.fastcatsearch.common.io.Streamable; import org.fastcatsearch.exception.FastcatSearchException; import org.fastcatsearch.ir.io.DataInput; import org.fastcatsearch.ir.io.DataOutput; import org.fastcatsearch.job.Job; import org.fastcatsearch.plugin.Plugin; import org.fastcatsearch.plugin.PluginService; import org.fastcatsearch.plugin.analysis.AnalysisPlugin; import org.fastcatsearch.service.ServiceManager; /** * 플러그인의 사전을 리로드 한다. * */ public class UpdateDictionaryJob extends Job implements Streamable { private static final long serialVersionUID = 7694355608917697387L; @Override public void readFrom(DataInput input) throws IOException { args = input.readString(); } @Override public void writeTo(DataOutput output) throws IOException { output.writeString(getStringArgs()); } @Override public JobResult doRun() throws FastcatSearchException { String pluginId = getStringArgs(); PluginService pluginService = ServiceManager.getInstance().getService(PluginService.class); Plugin plugin = pluginService.getPlugin(pluginId); if (plugin != null && plugin instanceof AnalysisPlugin) { AnalysisPlugin analysisPlugin = (AnalysisPlugin) plugin; analysisPlugin.reloadDictionary(); return new JobResult(true); } else { return new JobResult(false); } } }