132 lines
2.9 KiB
Java
Executable File
132 lines
2.9 KiB
Java
Executable File
|
|
/*
|
|
* To change this template, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
package audiobook;
|
|
|
|
//~--- JDK imports ------------------------------------------------------------
|
|
|
|
import java.io.File;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* This class represents an audiobook
|
|
* @author Kim
|
|
*/
|
|
public class Book extends ArrayList<Chapter> {
|
|
private String album;
|
|
private String artist;
|
|
private File imageFile;
|
|
private String name;
|
|
private File targetFolder;
|
|
|
|
/**
|
|
* Creates a new empty audiobook
|
|
*/
|
|
public Book() {
|
|
name = "";
|
|
album = "";
|
|
artist = "";
|
|
}
|
|
|
|
/**
|
|
* Creates a new Audiobook with a specified image File
|
|
* @param imageFile
|
|
*/
|
|
public Book(File imageFile) {
|
|
setImageFile(imageFile);
|
|
}
|
|
|
|
/**
|
|
* Returns a <code>File</code> containing the cover of this audiobook.
|
|
* Returns <code>null</code> if no cover was selected.
|
|
*/
|
|
public File getImageFile() {
|
|
return imageFile;
|
|
}
|
|
|
|
/**
|
|
* Sets the image of this audiobook. Images have to be in jpeg or png format
|
|
* @param imageFile a file containing an Image
|
|
* @throws IllegalArgumentException If the image is not a jpg, jpeg or png Image
|
|
*/
|
|
public void setImageFile(File imageFile) throws IllegalArgumentException {
|
|
if (!Files.FileActions.hasExtention(imageFile, ".jpg", ".jpeg", ".png")) {
|
|
throw new IllegalArgumentException("Illegal Image format");
|
|
}
|
|
|
|
this.imageFile = imageFile;
|
|
}
|
|
|
|
/**
|
|
* Returns the folder the audiobook is to be stored in.
|
|
* @return a Folder
|
|
*/
|
|
public File getTargetFolder() {
|
|
return targetFolder;
|
|
}
|
|
|
|
/**
|
|
* Sets the folder the audiobook is to be stored in
|
|
* @param folder a Folder
|
|
*/
|
|
public void setTargetFolder(File folder) throws IllegalArgumentException {
|
|
if (!folder.isDirectory()) {
|
|
throw new IllegalArgumentException("Not a Folder");
|
|
}
|
|
|
|
this.targetFolder = folder;
|
|
}
|
|
|
|
/**
|
|
* Sets the album-tag information
|
|
* @param album a String
|
|
*/
|
|
public void setAlbum(String album) {
|
|
this.album = album;
|
|
}
|
|
|
|
/**
|
|
* Sets the artist-tag information
|
|
* @param artist aString
|
|
*/
|
|
public void setArtist(String artist) {
|
|
this.artist = artist;
|
|
}
|
|
|
|
/**
|
|
* Sets the name of the audiobook
|
|
* @param name a String
|
|
*/
|
|
public void setName(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
/**
|
|
* Returns the album-tag information
|
|
*/
|
|
public String getAlbum() {
|
|
return album;
|
|
}
|
|
|
|
/**
|
|
* Returns the artist-tag information
|
|
*/
|
|
public String getArtist() {
|
|
return artist;
|
|
}
|
|
|
|
/**
|
|
* Returns the name of this audiobook
|
|
*/
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
}
|
|
|
|
|
|
//~ Formatted by Jindent --- http://www.jindent.com
|