in uimaj-tools/src/main/java/org/apache/uima/tools/docanalyzer/DocumentAnalyzer.java [621:746]
public void analyzeDocuments(String analysisText) {
// get field values from GUI
outputFileSelected = outputFileSelector.getSelected();
File inputDir = new File(inputFileSelector.getSelected());
if (outputFileSelector.getSelected().length() > 0) {
outputDirectory = new File(outputFileSelector.getSelected());
} else {
outputDirectory = null;
}
// reset file pointers in case of typed-in text. JMP
String tempFileDir = null;
if ((analysisText != null) && (outputDirectory != null)) {
tempFileDir = outputFileSelector.getSelected() + "/interactive_temp";
inputDir = new File(tempFileDir);
if (!inputDir.exists()) {
inputDir.mkdirs();
}
outputFileSelected = outputFileSelector.getSelected() + "/interactive_out";
prefsMed.setOutputDirForInteractiveMode(outputFileSelected, outputFileSelector.getSelected());
outputDirectory = new File(outputFileSelected);
} else {
analysisText = null; //
} // should just return
aeSpecifierFile = new File(xmlFileSelector.getSelected());
String xmlTag = runParametersField.getText();
if ("".equals(xmlTag)) {
xmlTag = null;
}
String inputFileFormat = (String) inputFileFormatComboBox.getSelectedItem();
String language = (String) languageComboBox.getSelectedItem();
String encoding = (String) encodingComboBox.getSelectedItem();
Boolean lenient = lenientCheckbox.isSelected();
// validate parameters
if (aeSpecifierFile.getName().equals("")) {
displayError("An Analysis Engine Descriptor is Required");
} else if (!aeSpecifierFile.exists()) {
displayError("Analysis Engine Descriptor \"" + xmlFileSelector.getSelected()
+ "\" does not exist.");
} else if (aeSpecifierFile.isDirectory()) {
displayError("The Analysis Engine Descriptor (" + xmlFileSelector.getSelected()
+ ") must be a file, not a directory.");
} else if (inputDir.getName().equals("")) {
displayError("An Input Directory is Required");
} else if (!inputDir.exists()) {
displayError(
"The input directory \"" + inputFileSelector.getSelected() + "\" does not exist.");
} else if (!inputDir.isDirectory()) {
displayError("The input directory (" + inputFileSelector.getSelected()
+ ") must be a directory, not a file.");
} else if (outputDirectory != null && (!outputDirectory.exists() && !outputDirectory.mkdirs())
|| !outputDirectory.isDirectory()) {
displayError("The output directory \"" + outputFileSelector.getSelected()
+ "\" does not exist and could not be created.");
} else if (inputDir.equals(outputDirectory)) {
displayError("The input directory and the output directory must be different.");
} else
// parameters are OK
{
// Set up files for case of typed-in text. JMP
if (analysisText != null) {
// delete contents of the outputDirectory, to clear out old
// results
File[] filesInOutDir = inputDir.listFiles();
for (int i = 0; i < filesInOutDir.length; i++) {
if (!filesInOutDir[i].isDirectory()) {
filesInOutDir[i].delete();
}
}
File tempFile = new File(tempFileDir + "/" + interactiveTempFN);
PrintWriter writer;
try {
writer = new PrintWriter(new BufferedWriter(new FileWriter(tempFile)));
writer.println(analysisText);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// Delete contents of the outputDirectory, to clear out old results.
// However -- if output dir contains files with names different than
// those in input dir, prompt.
File[] filesInOutDir = outputDirectory.listFiles();
for (int i = 0; i < filesInOutDir.length; i++) {
if (!filesInOutDir[i].isDirectory()) {
String filename = filesInOutDir[i].getName();
if (filename.endsWith(".xmi")) {
filename = filename.substring(0, filename.length() - 4);
}
if (!new File(inputDir, filename).exists()) {
int choice = JOptionPane.showConfirmDialog(DocumentAnalyzer.this,
"All files in " + outputDirectory.getPath()
+ " will be deleted. These files don't "
+ "appear to match the files in the input directory. Is this OK?",
"Confirm", JOptionPane.YES_NO_OPTION);
if (choice == JOptionPane.NO_OPTION) {
return;
} else {
break;
}
}
}
}
// go ahead and delete files in output dir
for (int i = 0; i < filesInOutDir.length; i++) {
if (!filesInOutDir[i].isDirectory()) {
filesInOutDir[i].delete();
}
}
// read radio buttons. JMP
javaViewerRBisSelected = javaViewerRB.isSelected();
javaViewerUCRBisSelected = javaViewerUCRB.isSelected();
// start separate thread to do component initialization and
// processing
ProcessingThread thread = new ProcessingThread(inputDir, inputFileFormat, lenient,
outputDirectory, aeSpecifierFile, xmlTag, language, encoding);
thread.start();
}
}