1
This repository has been archived on 2022-08-08. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
audiobook-maker/src/audiobook/Book.java
2017-07-24 16:18:59 +02:00

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