Ejemplo n.º 1
0
  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();
  }