Don't die if we get passed no candidates
git-svn-id: http://google-refine.googlecode.com/svn/trunk@2210 7d457c2a-affb-35e4-300a-418c747d4874
This commit is contained in:
parent
9025a64dd0
commit
9d7b8a5279
@ -79,34 +79,36 @@ public class ExcelImporter extends TabularImportingParserBase {
|
||||
JSONArray sheetRecords = new JSONArray();
|
||||
JSONUtilities.safePut(options, "sheetRecords", sheetRecords);
|
||||
try {
|
||||
JSONObject firstFileRecord = fileRecords.get(0);
|
||||
File file = ImportingUtilities.getFile(job, firstFileRecord);
|
||||
InputStream is = new FileInputStream(file);
|
||||
try {
|
||||
Workbook wb = xmlBased ?
|
||||
new XSSFWorkbook(is) :
|
||||
new HSSFWorkbook(new POIFSFileSystem(is));
|
||||
|
||||
int sheetCount = wb.getNumberOfSheets();
|
||||
boolean hasData = false;
|
||||
for (int i = 0; i < sheetCount; i++) {
|
||||
Sheet sheet = wb.getSheetAt(i);
|
||||
int rows = sheet.getLastRowNum() - sheet.getFirstRowNum() + 1;
|
||||
|
||||
JSONObject sheetRecord = new JSONObject();
|
||||
JSONUtilities.safePut(sheetRecord, "name", sheet.getSheetName());
|
||||
JSONUtilities.safePut(sheetRecord, "rows", rows);
|
||||
if (hasData) {
|
||||
JSONUtilities.safePut(sheetRecord, "selected", false);
|
||||
} else if (rows > 1) {
|
||||
JSONUtilities.safePut(sheetRecord, "selected", true);
|
||||
hasData = true;
|
||||
}
|
||||
JSONUtilities.append(sheetRecords, sheetRecord);
|
||||
if (fileRecords.size() > 0) {
|
||||
JSONObject firstFileRecord = fileRecords.get(0);
|
||||
File file = ImportingUtilities.getFile(job, firstFileRecord);
|
||||
InputStream is = new FileInputStream(file);
|
||||
try {
|
||||
Workbook wb = xmlBased ?
|
||||
new XSSFWorkbook(is) :
|
||||
new HSSFWorkbook(new POIFSFileSystem(is));
|
||||
|
||||
int sheetCount = wb.getNumberOfSheets();
|
||||
boolean hasData = false;
|
||||
for (int i = 0; i < sheetCount; i++) {
|
||||
Sheet sheet = wb.getSheetAt(i);
|
||||
int rows = sheet.getLastRowNum() - sheet.getFirstRowNum() + 1;
|
||||
|
||||
JSONObject sheetRecord = new JSONObject();
|
||||
JSONUtilities.safePut(sheetRecord, "name", sheet.getSheetName());
|
||||
JSONUtilities.safePut(sheetRecord, "rows", rows);
|
||||
if (hasData) {
|
||||
JSONUtilities.safePut(sheetRecord, "selected", false);
|
||||
} else if (rows > 1) {
|
||||
JSONUtilities.safePut(sheetRecord, "selected", true);
|
||||
hasData = true;
|
||||
}
|
||||
JSONUtilities.append(sheetRecords, sheetRecord);
|
||||
}
|
||||
} finally {
|
||||
is.close();
|
||||
}
|
||||
} finally {
|
||||
is.close();
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// Ignore
|
||||
}
|
||||
|
@ -30,25 +30,25 @@ public class FixedWidthImporter extends TabularImportingParserBase {
|
||||
ImportingJob job, List<JSONObject> fileRecords, String format) {
|
||||
JSONObject options = super.createParserUIInitializationData(job, fileRecords, format);
|
||||
JSONArray columnWidths = new JSONArray();
|
||||
|
||||
JSONObject firstFileRecord = fileRecords.get(0);
|
||||
String encoding = ImportingUtilities.getEncoding(firstFileRecord);
|
||||
String location = JSONUtilities.getString(firstFileRecord, "location", null);
|
||||
if (location != null) {
|
||||
File file = new File(job.getRawDataDir(), location);
|
||||
int[] columnWidthsA = guessColumnWidths(file, encoding);
|
||||
if (columnWidthsA != null) {
|
||||
for (int w : columnWidthsA) {
|
||||
JSONUtilities.append(columnWidths, w);
|
||||
if (fileRecords.size() > 0) {
|
||||
JSONObject firstFileRecord = fileRecords.get(0);
|
||||
String encoding = ImportingUtilities.getEncoding(firstFileRecord);
|
||||
String location = JSONUtilities.getString(firstFileRecord, "location", null);
|
||||
if (location != null) {
|
||||
File file = new File(job.getRawDataDir(), location);
|
||||
int[] columnWidthsA = guessColumnWidths(file, encoding);
|
||||
if (columnWidthsA != null) {
|
||||
for (int w : columnWidthsA) {
|
||||
JSONUtilities.append(columnWidths, w);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
JSONUtilities.safePut(options, "lineSeparator", "\n");
|
||||
JSONUtilities.safePut(options, "headerLines", 0);
|
||||
JSONUtilities.safePut(options, "columnWidths", columnWidths);
|
||||
JSONUtilities.safePut(options, "guessCellValueTypes", true);
|
||||
}
|
||||
|
||||
JSONUtilities.safePut(options, "lineSeparator", "\n");
|
||||
JSONUtilities.safePut(options, "headerLines", 0);
|
||||
JSONUtilities.safePut(options, "columnWidths", columnWidths);
|
||||
JSONUtilities.safePut(options, "guessCellValueTypes", true);
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
|
@ -75,24 +75,26 @@ public class JsonImporter extends TreeImportingParserBase {
|
||||
public JSONObject createParserUIInitializationData(
|
||||
ImportingJob job, List<JSONObject> fileRecords, String format) {
|
||||
JSONObject options = super.createParserUIInitializationData(job, fileRecords, format);
|
||||
try {
|
||||
JSONObject firstFileRecord = fileRecords.get(0);
|
||||
File file = ImportingUtilities.getFile(job, firstFileRecord);
|
||||
InputStream is = new FileInputStream(file);
|
||||
if (fileRecords.size() > 0) {
|
||||
try {
|
||||
JsonFactory factory = new JsonFactory();
|
||||
JsonParser parser = factory.createJsonParser(is);
|
||||
|
||||
PreviewParsingState state = new PreviewParsingState();
|
||||
Object rootValue = parseForPreview(parser, state);
|
||||
if (rootValue != null) {
|
||||
JSONUtilities.safePut(options, "dom", rootValue);
|
||||
JSONObject firstFileRecord = fileRecords.get(0);
|
||||
File file = ImportingUtilities.getFile(job, firstFileRecord);
|
||||
InputStream is = new FileInputStream(file);
|
||||
try {
|
||||
JsonFactory factory = new JsonFactory();
|
||||
JsonParser parser = factory.createJsonParser(is);
|
||||
|
||||
PreviewParsingState state = new PreviewParsingState();
|
||||
Object rootValue = parseForPreview(parser, state);
|
||||
if (rootValue != null) {
|
||||
JSONUtilities.safePut(options, "dom", rootValue);
|
||||
}
|
||||
} finally {
|
||||
is.close();
|
||||
}
|
||||
} finally {
|
||||
is.close();
|
||||
} catch (IOException e) {
|
||||
// Ignore
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// Ignore
|
||||
}
|
||||
|
||||
return options;
|
||||
|
@ -73,28 +73,30 @@ public class XmlImporter extends TreeImportingParserBase {
|
||||
ImportingJob job, List<JSONObject> fileRecords, String format) {
|
||||
JSONObject options = super.createParserUIInitializationData(job, fileRecords, format);
|
||||
try {
|
||||
JSONObject firstFileRecord = fileRecords.get(0);
|
||||
File file = ImportingUtilities.getFile(job, firstFileRecord);
|
||||
InputStream is = new FileInputStream(file);
|
||||
try {
|
||||
XMLStreamReader parser = createXMLStreamReader(is);
|
||||
PreviewParsingState state = new PreviewParsingState();
|
||||
|
||||
while (parser.hasNext() && state.tokenCount < PREVIEW_PARSING_LIMIT) {
|
||||
int tokenType = parser.next();
|
||||
state.tokenCount++;
|
||||
if (tokenType == XMLStreamConstants.START_ELEMENT) {
|
||||
JSONObject rootElement = descendElement(parser, state);
|
||||
if (rootElement != null) {
|
||||
JSONUtilities.safePut(options, "dom", rootElement);
|
||||
break;
|
||||
if (fileRecords.size() > 0) {
|
||||
JSONObject firstFileRecord = fileRecords.get(0);
|
||||
File file = ImportingUtilities.getFile(job, firstFileRecord);
|
||||
InputStream is = new FileInputStream(file);
|
||||
try {
|
||||
XMLStreamReader parser = createXMLStreamReader(is);
|
||||
PreviewParsingState state = new PreviewParsingState();
|
||||
|
||||
while (parser.hasNext() && state.tokenCount < PREVIEW_PARSING_LIMIT) {
|
||||
int tokenType = parser.next();
|
||||
state.tokenCount++;
|
||||
if (tokenType == XMLStreamConstants.START_ELEMENT) {
|
||||
JSONObject rootElement = descendElement(parser, state);
|
||||
if (rootElement != null) {
|
||||
JSONUtilities.safePut(options, "dom", rootElement);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
// ignore everything else
|
||||
}
|
||||
} else {
|
||||
// ignore everything else
|
||||
}
|
||||
} finally {
|
||||
is.close();
|
||||
}
|
||||
} finally {
|
||||
is.close();
|
||||
}
|
||||
} catch (XMLStreamException e) {
|
||||
// Ignore
|
||||
|
Loading…
Reference in New Issue
Block a user