package org.reldb.rel.v0.storage.relvars.external.xls; import org.reldb.rel.v0.storage.relvars.external.Info; import org.reldb.rel.v0.storage.relvars.external.InfoComponent; import org.reldb.rel.v0.storage.relvars.external.InfoComponentOption; public class InfoXLS extends Info { @Override public String getIdentifier() { return "XLS"; } @Override public String getDescription() { return "Connection to an XLS or XLSX spreadsheet file."; } @Override public String getConnectionStringDocumentation() { return "Specify the file name.\n" + "Examples:\n" + "\tVAR myvar EXTERNAL XLS \"/home/dave/test.xlsx\";\n" + "\tVAR myvar EXTERNAL XLS \"/home/dave/test.xls\";\n" + "\tVAR myvar EXTERNAL XLS \"/home/dave/test.xlsx,1\";\n" + "\tVAR myvar EXTERNAL XLS \"/home/dave/test.xls,2,NOHEADING\";\n" + "Use optional NOHEADING to not treat first row as a heading row and use it as a data row.\n" + "An optional number after the file name indicates the zero-based tab number."; } @Override public InfoComponent[] getConnectionStringComponents() { return new InfoComponent[] { new InfoComponent(0) { @Override public boolean isOptional() { return false; } @Override public boolean isAFile() { return true; } @Override public String[] getAppropriateFileExtension() { return new String[] {"xls", "xlsx"}; } @Override public String getDocumentation() { return "Path to spreadsheet file."; } @Override public InfoComponentOption[] getOptions() { return null; } }, new InfoComponent(1) { @Override public boolean isOptional() { return true; } @Override public boolean isAFile() { return false; } @Override public String[] getAppropriateFileExtension() { return null; } @Override public String getDocumentation() { return "Zero-based tab number. E.g., 0 for first tab, 1 for second, etc."; } @Override public InfoComponentOption[] getOptions() { return null; } }, new InfoComponent(2) { @Override public boolean isOptional() { return true; } @Override public boolean isAFile() { return false; } @Override public String[] getAppropriateFileExtension() { return null; } @Override public String getDocumentation() { return "Select NOHEADING if the spreadsheet does not start with a heading row."; } @Override public InfoComponentOption[] getOptions() { return new InfoComponentOption[] { new InfoComponentOption() { @Override public String getDocumentation() { return "Spreadsheet does not start with a heading row."; } @Override public String getOptionText() { return "NOHEADING"; } } }; } } }; } @Override public boolean isGuaranteedUnique() { return false; } }