diff --git a/xchart/src/main/java/org/knowm/xchart/CSVImporter.java b/xchart/src/main/java/org/knowm/xchart/CSVImporter.java index 27e2bde1..ab8c2c0e 100644 --- a/xchart/src/main/java/org/knowm/xchart/CSVImporter.java +++ b/xchart/src/main/java/org/knowm/xchart/CSVImporter.java @@ -6,6 +6,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; + +import org.knowm.xchart.internal.FileUtils; import org.knowm.xchart.style.Styler.ChartTheme; /** @@ -39,7 +41,7 @@ public static XYChart getChartFromCSVDir( } // 2. get all the csv files in the dir - File[] csvFiles = getAllFiles(path2Directory, ".*.csv"); + File[] csvFiles = FileUtils.getAllFiles(path2Directory, ".*.csv"); // 3. create a series for each file, naming the series the file name for (File csvFile : csvFiles) { @@ -53,14 +55,14 @@ public static XYChart getChartFromCSVDir( if (xAndYData[2] == null || xAndYData[2].trim().equalsIgnoreCase("")) { chart.addSeries( csvFile.getName().substring(0, csvFile.getName().indexOf(".csv")), - getAxisData(xAndYData[0]), - getAxisData(xAndYData[1])); + DataConverter.getAxisData(xAndYData[0]), + DataConverter.getAxisData(xAndYData[1])); } else { chart.addSeries( csvFile.getName().substring(0, csvFile.getName().indexOf(".csv")), - getAxisData(xAndYData[0]), - getAxisData(xAndYData[1]), - getAxisData(xAndYData[2])); + DataConverter.getAxisData(xAndYData[0]), + DataConverter.getAxisData(xAndYData[1]), + DataConverter.getAxisData(xAndYData[2])); } } @@ -81,8 +83,8 @@ public static SeriesData getSeriesDataFromCSVFile( xAndYData = getSeriesDataFromCSVColumns(csvFile); } return new SeriesData( - getAxisData(xAndYData[0]), - getAxisData(xAndYData[1]), + DataConverter.getAxisData(xAndYData[0]), + DataConverter.getAxisData(xAndYData[1]), csvFile.getName().substring(0, csvFile.getName().indexOf(".csv"))); } @@ -168,76 +170,7 @@ private static String[] getSeriesDataFromCSVColumns(File csvFile) { return xAndYData; } - /** - * @param stringData - * @return - */ - private static List getAxisData(String stringData) { - - List axisData = new ArrayList(); - String[] stringDataArray = stringData.split(","); - for (String dataPoint : stringDataArray) { - try { - Double value = Double.parseDouble(dataPoint); - axisData.add(value); - } catch (NumberFormatException e) { - System.out.println("Error parsing >" + dataPoint + "< !"); - throw (e); - } - } - return axisData; - } - - /** - * This method returns the files found in the given directory matching the given regular - * expression. - * - * @param dirName - ex. "./path/to/directory/" *make sure you have the '/' on the end - * @param regex - ex. ".*.csv" - * @return File[] - an array of files - */ - private static File[] getAllFiles(String dirName, String regex) { - - File[] allFiles = getAllFiles(dirName); - List matchingFiles = new ArrayList(); - - for (File allFile : allFiles) { - - if (allFile.getName().matches(regex)) { - matchingFiles.add(allFile); - } - } - - return matchingFiles.toArray(new File[matchingFiles.size()]); - } - - /** - * This method returns the Files found in the given directory - * - * @param dirName - ex. "./path/to/directory/" *make sure you have the '/' on the end - * @return File[] - an array of files - */ - private static File[] getAllFiles(String dirName) { - - File dir = new File(dirName); - - File[] files = dir.listFiles(); // returns files and folders - - if (files != null) { - List filteredFiles = new ArrayList(); - for (File file : files) { - - if (file.isFile()) { - filteredFiles.add(file); - } - } - return filteredFiles.toArray(new File[filteredFiles.size()]); - } else { - System.out.println(dirName + " does not denote a valid directory!"); - return new File[0]; - } - } public enum DataOrientation { Rows, diff --git a/xchart/src/main/java/org/knowm/xchart/DataConverter.java b/xchart/src/main/java/org/knowm/xchart/DataConverter.java new file mode 100644 index 00000000..8826deb9 --- /dev/null +++ b/xchart/src/main/java/org/knowm/xchart/DataConverter.java @@ -0,0 +1,27 @@ +package org.knowm.xchart; + +import java.util.ArrayList; +import java.util.List; + +public class DataConverter { + /** + * @param stringData + * @return + */ + public static List getAxisData(String stringData) { + + List axisData = new ArrayList(); + String[] stringDataArray = stringData.split(","); + for (String dataPoint : stringDataArray) { + try { + Double value = Double.parseDouble(dataPoint); + axisData.add(value); + } catch (NumberFormatException e) { + System.out.println("Error parsing >" + dataPoint + "< !"); + throw (e); + } + } + return axisData; + } + +} diff --git a/xchart/src/main/java/org/knowm/xchart/GifEncoder.java b/xchart/src/main/java/org/knowm/xchart/GifEncoder.java index 4b2839d0..68e6767d 100644 --- a/xchart/src/main/java/org/knowm/xchart/GifEncoder.java +++ b/xchart/src/main/java/org/knowm/xchart/GifEncoder.java @@ -3,7 +3,7 @@ import com.madgag.gif.fmsware.AnimatedGifEncoder; import java.awt.image.BufferedImage; import java.util.List; -import org.knowm.xchart.internal.Utils; +import org.knowm.xchart.internal.FileUtils; /** A helper class with static methods for saving Charts as a GIF file */ public class GifEncoder { @@ -31,7 +31,7 @@ public static void saveGif(String filePath, List images) { public static void saveGif(String filePath, List images, int repeat, int delay) { AnimatedGifEncoder gif = new AnimatedGifEncoder(); gif.setRepeat(repeat); - gif.start(Utils.addFileExtension(filePath, GIF_FILE_EXTENSION)); + gif.start(FileUtils.addFileExtension(filePath, GIF_FILE_EXTENSION)); gif.setDelay(delay); for (BufferedImage image : images) { gif.addFrame(image); diff --git a/xchart/src/main/java/org/knowm/xchart/internal/FileUtils.java b/xchart/src/main/java/org/knowm/xchart/internal/FileUtils.java new file mode 100644 index 00000000..40d79a9e --- /dev/null +++ b/xchart/src/main/java/org/knowm/xchart/internal/FileUtils.java @@ -0,0 +1,78 @@ +package org.knowm.xchart.internal; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +public class FileUtils { + /** + * Only adds the extension of the fileExtension to the filename if the filename doesn't already + * have it. + * + * @param fileName File name + * @param fileExtension File extension + * @return filename (if extension already exists), otherwise;: filename + fileExtension + */ + public static String addFileExtension(String fileName, String fileExtension) { + String fileNameWithFileExtension = fileName; + if (fileName.length() <= fileExtension.length() + || !fileName + .substring(fileName.length() - fileExtension.length()) + .equalsIgnoreCase(fileExtension)) { + fileNameWithFileExtension = fileName + fileExtension; + } + return fileNameWithFileExtension; + } + + /** + * This method returns the files found in the given directory matching the given regular + * expression. + * + * @param dirName - ex. "./path/to/directory/" *make sure you have the '/' on the end + * @param regex - ex. ".*.csv" + * @return File[] - an array of files + */ + public static File[] getAllFiles(String dirName, String regex) { + + File[] allFiles = getAllFiles(dirName); + + List matchingFiles = new ArrayList(); + + for (File allFile : allFiles) { + + if (allFile.getName().matches(regex)) { + matchingFiles.add(allFile); + } + } + + return matchingFiles.toArray(new File[matchingFiles.size()]); + } + + /** + * This method returns the Files found in the given directory + * + * @param dirName - ex. "./path/to/directory/" *make sure you have the '/' on the end + * @return File[] - an array of files + */ + public static File[] getAllFiles(String dirName) { + + File dir = new File(dirName); + + File[] files = dir.listFiles(); // returns files and folders + + if (files != null) { + List filteredFiles = new ArrayList(); + for (File file : files) { + + if (file.isFile()) { + filteredFiles.add(file); + } + } + return filteredFiles.toArray(new File[filteredFiles.size()]); + } else { + System.out.println(dirName + " does not denote a valid directory!"); + return new File[0]; + } + } + +} diff --git a/xchart/src/main/java/org/knowm/xchart/internal/Utils.java b/xchart/src/main/java/org/knowm/xchart/internal/Utils.java index a7d98d38..484ae352 100644 --- a/xchart/src/main/java/org/knowm/xchart/internal/Utils.java +++ b/xchart/src/main/java/org/knowm/xchart/internal/Utils.java @@ -179,22 +179,4 @@ public static long[] getLongArrayFromNumberList(List data) { return longs; } - /** - * Only adds the extension of the fileExtension to the filename if the filename doesn't already - * have it. - * - * @param fileName File name - * @param fileExtension File extension - * @return filename (if extension already exists), otherwise;: filename + fileExtension - */ - public static String addFileExtension(String fileName, String fileExtension) { - String fileNameWithFileExtension = fileName; - if (fileName.length() <= fileExtension.length() - || !fileName - .substring(fileName.length() - fileExtension.length()) - .equalsIgnoreCase(fileExtension)) { - fileNameWithFileExtension = fileName + fileExtension; - } - return fileNameWithFileExtension; } -} diff --git a/xchart/src/test/java/org/knowm/xchart/internal/UtilsTest.java b/xchart/src/test/java/org/knowm/xchart/internal/UtilsTest.java index e174ab3a..6b8b394e 100644 --- a/xchart/src/test/java/org/knowm/xchart/internal/UtilsTest.java +++ b/xchart/src/test/java/org/knowm/xchart/internal/UtilsTest.java @@ -8,9 +8,9 @@ public class UtilsTest { @Test void addFileExtension() { - assertEquals(Utils.addFileExtension("yourchart.png", ".png"), "yourchart.png"); - assertEquals(Utils.addFileExtension("yourchart.png", ".pn"), "yourchart.png.pn"); - assertEquals(Utils.addFileExtension("a", ".png"), "a.png"); - assertEquals(Utils.addFileExtension("a.PNG", ".png"), "a.PNG"); + assertEquals(FileUtils.addFileExtension("yourchart.png", ".png"), "yourchart.png"); + assertEquals(FileUtils.addFileExtension("yourchart.png", ".pn"), "yourchart.png.pn"); + assertEquals(FileUtils.addFileExtension("a", ".png"), "a.png"); + assertEquals(FileUtils.addFileExtension("a.PNG", ".png"), "a.PNG"); } }