package ir.ac.iust.nlp.dependencyparser.utility.parsing;
import ir.ac.iust.nlp.dependencyparser.utility.enumeration.Flowchart;
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import org.apache.commons.io.FileUtils;
/**
*
* @author Mojtaba Khallash
*/
public abstract class Settings {
public Flowchart Chart;
public String Input;
public String Output;
public String Gold;
public String Model;
public Settings() {}
public Settings(Settings settings) {
this.Chart = settings.Chart;
this.Input = settings.Input;
this.Output = settings.Output;
this.Gold = settings.Gold;
this.Model = settings.Model;
}
public String[] getParameters() {
switch (Chart) {
case Train:
return getTrainParameters();
case Parse:
return getTestParameters();
case Eval:
return getEvalParameters();
}
return null;
}
protected abstract String[] getTrainParameters();
protected abstract String[] getTestParameters();
private String[] getEvalParameters() {
List<String> pars = new LinkedList<>();
pars.add("eval");
pars.add("gold-file:" + Gold);
pars.add("output-file:" + Output);
pars.add("format:CONLL");
return pars.toArray(new String[0]);
}
protected void copyToDestination(String source, String destination) {
File from = new File(source).getAbsoluteFile();
File to = new File(destination);
if (!from.equals(to)) {
try { FileUtils.copyFile(from, to); } catch (IOException e) {}
}
}
}