From a57fd29902578adf7238d71cf9bbd55408584557 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 14:02:34 +0200 Subject: Applying the latest package architecture. --- .../java/musichub/business/PathValidation.java | 28 +++++++++++++++++++++ src/main/java/musichub/main/Main.java | 14 ++++++++--- .../java/musichub/business/PathValidationTest.java | 8 ++++++ .../classes/musichub/business/AudioElement.class | Bin 5392 -> 5422 bytes target/classes/musichub/business/MusicHub.class | Bin 11543 -> 11543 bytes .../classes/musichub/business/SortByAuthor.class | Bin 901 -> 901 bytes target/classes/musichub/business/SortByDate.class | Bin 854 -> 854 bytes target/classes/musichub/business/SortByGenre.class | Bin 858 -> 858 bytes target/classes/musichub/main/Main.class | Bin 9840 -> 10064 bytes 9 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 src/main/java/musichub/business/PathValidation.java create mode 100644 src/test/java/musichub/business/PathValidationTest.java diff --git a/src/main/java/musichub/business/PathValidation.java b/src/main/java/musichub/business/PathValidation.java new file mode 100644 index 0000000..97f8759 --- /dev/null +++ b/src/main/java/musichub/business/PathValidation.java @@ -0,0 +1,28 @@ +package musichub.business; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * Class offering a path validation method. + * + * @author Aimeric ADJUTOR + * @version 1.0 + */ + +public class PathValidation { + + /** + * Methode that checks the validity of a given path + * + * @param inputPath the path given by the user + * @return a boolean + */ + + public static boolean isPathValid(String inputPath) { + Path path = Paths.get(inputPath); + return Files.exists(path); + } + +} \ No newline at end of file diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java index 2876734..e2e4731 100644 --- a/src/main/java/musichub/main/Main.java +++ b/src/main/java/musichub/main/Main.java @@ -2,13 +2,14 @@ package musichub.main; import musichub.business.*; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Scanner; -import javax.sound.sampled.LineUnavailableException; -import javax.sound.sampled.UnsupportedAudioFileException; +import static musichub.business.PathValidation.isPathValid; public class Main { public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException { @@ -47,7 +48,7 @@ public class Main { albumTitle = scan.nextLine(); try { List songs = theHub.getAlbumSongsSortedByGenre(albumTitle); - System.out.println(songs);; + System.out.println(songs); } catch (NoAlbumFoundException ex) { System.out.println("No album found with the requested title " + ex.getMessage()); } @@ -88,8 +89,15 @@ public class Main { String artist = scan.nextLine(); System.out.println("Song length in seconds: "); int length = Integer.parseInt(scan.nextLine()); + System.out.println("Song content: "); String content = scan.nextLine(); + if (!isPathValid(content)) { + System.out.println("The music file was not found with the path you've provided.\nType h for available commands"); + choice = scan.nextLine(); + break; + } + Song s = new Song(title, artist, length, content, genre); theHub.addElement(s); System.out.println("New element list: "); diff --git a/src/test/java/musichub/business/PathValidationTest.java b/src/test/java/musichub/business/PathValidationTest.java new file mode 100644 index 0000000..2b24d7a --- /dev/null +++ b/src/test/java/musichub/business/PathValidationTest.java @@ -0,0 +1,8 @@ +package musichub.business; + + +public class PathValidationTest { + void testIsPathValid() { + //Not implemented yet + } +} \ No newline at end of file diff --git a/target/classes/musichub/business/AudioElement.class b/target/classes/musichub/business/AudioElement.class index 3579513..bb0f170 100644 Binary files a/target/classes/musichub/business/AudioElement.class and b/target/classes/musichub/business/AudioElement.class differ diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class index 8b8b280..9554eeb 100644 Binary files a/target/classes/musichub/business/MusicHub.class and b/target/classes/musichub/business/MusicHub.class differ diff --git a/target/classes/musichub/business/SortByAuthor.class b/target/classes/musichub/business/SortByAuthor.class index ac4474a..e366c32 100644 Binary files a/target/classes/musichub/business/SortByAuthor.class and b/target/classes/musichub/business/SortByAuthor.class differ diff --git a/target/classes/musichub/business/SortByDate.class b/target/classes/musichub/business/SortByDate.class index 6892059..9d330cb 100644 Binary files a/target/classes/musichub/business/SortByDate.class and b/target/classes/musichub/business/SortByDate.class differ diff --git a/target/classes/musichub/business/SortByGenre.class b/target/classes/musichub/business/SortByGenre.class index 7cabb3e..512232f 100644 Binary files a/target/classes/musichub/business/SortByGenre.class and b/target/classes/musichub/business/SortByGenre.class differ diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class index 1e19601..d9ad38a 100644 Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ -- cgit v1.2.3