📄 absfileinstanceloader.java
字号:
/**
* Description: for loading an instance of problem according to ProblemSettings,
* which refers to a file by the parameter "Problem"
*
* @ Author Create/Modi Note
* Xiaofeng Xie Jul 12, 2006
*/
package maosKernel.infoIO.instance;
import java.io.*;
import Global.methods.*;
import Global.system.io.*;
import maosKernel.represent.problem.*;
import maosKernel.infoIO.setting.*;
public abstract class AbsFileInstanceLoader extends AbsInstanceLoader {
private IInstanceInputEngine instanceInputEngine;
public AbsFileInstanceLoader() {};
public void setInstanceInputEngine(IInstanceInputEngine instanceInputEngine) {
this.instanceInputEngine = instanceInputEngine;
}
protected AbsProblemData loadPrimaryProblem(ProblemSettings problemSettings) throws Exception {
String problemName = null;
try {
problemName = TypeConverter.toString(problemSettings.getValue("Problem"));
} catch (Exception e) {
throw new Exception("Parameter \"Problem\" is not specified");
}
problemName = instanceInputEngine.getInstanceName(problemName);
return initInstanceData(problemSettings.getKey(), problemName, instanceInputEngine);
}
protected abstract AbsProblemData readProblem(String content) throws Exception;
protected AbsProblemData initInstanceData(String problemType, String problemName, IInstanceInputEngine instanceInputEngine) throws Exception {
try {
String validFileName = instanceInputEngine.getFullInstanceFileName(problemType, problemName);
SystemSettingPath.submitUsedFile("Instance", validFileName);
String content = GlobalFile.getStringFromFile(validFileName);
AbsProblemData problemData = readProblem(content);
return problemData;
} catch (Exception e) {
throw new UTFDataFormatException("("+problemName+": "+e.getMessage()+")");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -