Skip to content
Snippets Groups Projects
Commit c5ee6128 authored by cramakri's avatar cramakri
Browse files

LMS-1483 Further work on the graph/plot framework.

SVN: 15482
parent f7f54acd
No related branches found
No related tags found
No related merge requests found
...@@ -120,39 +120,51 @@ public abstract class AbstractDataMergingReportingPlugin extends AbstractFileTab ...@@ -120,39 +120,51 @@ public abstract class AbstractDataMergingReportingPlugin extends AbstractFileTab
protected DatasetFileLines loadFromDirectory(DatasetDescription dataset, final File dir) protected DatasetFileLines loadFromDirectory(DatasetDescription dataset, final File dir)
throws ParserException, ParsingException, IllegalArgumentException, throws ParserException, ParsingException, IllegalArgumentException,
IOExceptionUnchecked IOExceptionUnchecked
{
List<File> datasetFilesToMerge = findMatchingFiles(dataset, dir);
if (datasetFilesToMerge.size() != 1)
{
throw UserFailureException
.fromTemplate(
"Directory with Data Set '%s' data ('%s') should contain exactly 1 file with data but %s files were found.",
dataset.getDatasetCode(), dir.getAbsolutePath(), datasetFilesToMerge
.size());
} else
{
return loadFromFile(dataset, datasetFilesToMerge.get(0));
}
}
/**
* Scan the specified directory to find files that match the dataset description.
*
* @throws IOExceptionUnchecked if a {@link IOException} has occurred.
*/
protected List<File> findMatchingFiles(DatasetDescription dataset, final File dir)
throws IllegalArgumentException, IOExceptionUnchecked
{ {
assert dir != null : "Given file must not be null"; assert dir != null : "Given file must not be null";
assert dir.isDirectory() : "Given file '" + dir.getAbsolutePath() + "' is not a directory."; assert dir.isDirectory() : "Given file '" + dir.getAbsolutePath() + "' is not a directory.";
File[] datasetFiles = FileUtilities.listFiles(dir); File[] datasetFiles = FileUtilities.listFiles(dir);
List<File> datasetFilesToMerge = new ArrayList<File>(); List<File> matchingFiles = new ArrayList<File>();
for (File datasetFile : datasetFiles) for (File datasetFile : datasetFiles)
{ {
if (datasetFile.isDirectory()) if (datasetFile.isDirectory())
{ {
// recursively go down the directories // recursively go down the directories
return loadFromDirectory(dataset, datasetFile); return findMatchingFiles(dataset, datasetFile);
} else } else
{ {
// exclude files with properties // exclude files with properties
if (isFileExcluded(datasetFile) == false) if (isFileExcluded(datasetFile) == false)
{ {
datasetFilesToMerge.add(datasetFile); matchingFiles.add(datasetFile);
} }
} }
} }
if (datasetFilesToMerge.size() != 1) return matchingFiles;
{
throw UserFailureException
.fromTemplate(
"Directory with Data Set '%s' data ('%s') should contain exactly 1 file with data but %s files were found.",
dataset.getDatasetCode(), dir.getAbsolutePath(), datasetFilesToMerge
.size());
} else
{
return loadFromFile(dataset, datasetFilesToMerge.get(0));
}
} }
protected boolean isFileExcluded(File file) protected boolean isFileExcluded(File file)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment