Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main {
- public static void main(String[] args) {
- Library library = new Library();
- library.addBook("Java For Begginers", "2017", "Jakub Niedzielski");
- library.addBook("Java Podstawy Wydanie X", "2016", "Cay S. Horstmann");
- library.addBook("Java. Przewodnik dla początkujących. Wydanie V", "2012", "Herbert Schildt");
- library.addBook("Capitalism: The unknown ideal", "1966", "Ayn Rand");
- library.addBook("Atlas shrugged", "1957", "Ayn Rand");
- library.addBook("Java For Dumbasses", "2017", "Jakub Niedzielski");
- library.addBook("Effective Java: Programming Language Guide", "2017", "Joshua Bloch");
- library.addBook("Java Performance", "2016", "Charlie Hunt");
- library.lendBook(3);
- library.removeBook(3);
- }
- }
- import java.util.HashMap;
- import java.util.Map;
- public class Library {
- private int uniqueID = 0;
- private Map<Integer, Book> bookMap = new HashMap<>();
- public void addBook(String title, String year, String author) {
- uniqueID++;
- Book newBook = new Book(title, year, author, uniqueID);
- bookMap.put(uniqueID, newBook);
- }
- public void getInfoByID(Integer bookID) {
- Book book = bookMap.get(bookID);
- if (book != null) {
- book.print();
- }
- }
- public void getStatusInfo(Integer bookID) {
- Book statusInfo = bookMap.get(bookID);
- System.out.println("The book of ID: " + bookID + " is " + statusInfo.getBookStatus());
- }
- public void lendBook(Integer bookID) {
- Book bookStatus = bookMap.get(bookID);
- bookStatus.lendBook();
- }
- public void recoverBook(Integer bookID) {
- Book bookStatus = bookMap.get(bookID);
- bookStatus.recoverBook();
- }
- public void removeBook(Integer bookID) {
- Book value = bookMap.get(bookID);
- if (value != null) {
- if (value.getEnumBookStatus().equals(BookStatus.AVAILABLE)) {
- bookMap.remove(bookID);
- } else {
- System.out.println("Can't remove that book right now");
- }
- } else {
- System.out.println("Invalid ID number");
- }
- }
- public void getAll() {
- for (Book book : bookMap.values()) {
- book.print();
- }
- }
- public void getAllByAuthor(String author) {
- for (Book book : bookMap.values()) {
- if (author.equals(book.getAuthor())) {
- book.print();
- }
- }
- }
- public void getAllByYear(String year) {
- for (Book book : bookMap.values()) {
- if (year.equals(book.getYear())) {
- book.print();
- }
- }
- }
- // forbid to lent a book if its already lent
- // should allow to pass the name of person who lent it
- public Library() {
- }
- }
- public class Book {
- private int id;
- private String title;
- private String year;
- private String author;
- private BookStatus bookStatus = BookStatus.AVAILABLE;
- public Book(String title, String year, String author, int uniqueID) {
- this.id = uniqueID;
- this.title = title;
- this.year = year;
- this.author = author;
- }
- public String getTitle() {
- return title;
- }
- public String getYear() {
- return year;
- }
- public String getAuthor() {
- return author;
- }
- public int getId() {
- return id;
- }
- public void lendBook() {
- bookStatus = BookStatus.NON_AVAILABLE;
- }
- public void recoverBook() {
- bookStatus = BookStatus.AVAILABLE;
- }
- public String getBookStatus() {
- return bookStatus.toString();
- }
- public BookStatus getEnumBookStatus() {
- return bookStatus;
- }
- public void print() {
- System.out.println("ID number: " + this.getId());
- System.out.println("Title: " + this.getTitle());
- System.out.println("Year: " + this.getYear());
- System.out.println("Author: " + this.getAuthor());
- System.out.println("The book is " + this.getBookStatus());
- System.out.println();
- }
- }
- enum BookStatus {
- AVAILABLE {
- @Override
- public String toString() {
- return "available";
- }
- },
- NON_AVAILABLE {
- @Override
- public String toString() {
- return "non available";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement