private String makeCommand(ImportFileSettings input) { HashMap<String, ImportFileSettings> commandDefaults_ = new HashMap<String, ImportFileSettings>(); commandDefaults_.put("read.table", new ImportFileSettings(null, null, false, "", ".", "\"'")); commandDefaults_.put("read.csv", new ImportFileSettings(null, null, true, ",", ".", "\"")); commandDefaults_.put("read.delim", new ImportFileSettings(null, null, true, "\t", ".", "\"")); commandDefaults_.put("read.csv2", new ImportFileSettings(null, null, true, ";", ",", "\"")); commandDefaults_.put("read.delim2", new ImportFileSettings(null, null, true, "\t", ",", "\"")); String command = "read.table"; ImportFileSettings settings = commandDefaults_.get("read.table"); int score = settings.calculateSimilarity(input); for (String cmd : new String[] {"read.csv", "read.delim"}) { ImportFileSettings theseSettings = commandDefaults_.get(cmd); int thisScore = theseSettings.calculateSimilarity(input); if (thisScore > score) { score = thisScore; command = cmd; settings = theseSettings; } } StringBuilder code = new StringBuilder(command); code.append("("); code.append(StringUtil.textToRLiteral(input.getFile().getPath())); if (input.isHeader() != settings.isHeader()) code.append(", header=" + (input.isHeader() ? "T" : "F")); if (!input.getSep().equals(settings.getSep())) code.append(", sep=" + StringUtil.textToRLiteral(input.getSep())); if (!input.getDec().equals(settings.getDec())) code.append(", dec=" + StringUtil.textToRLiteral(input.getDec())); if (!input.getQuote().equals(settings.getQuote())) code.append(", quote=" + StringUtil.textToRLiteral(input.getQuote())); code.append(")"); return code.toString(); }