diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java new file mode 100644 index 0000000..4573385 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java @@ -0,0 +1,49 @@ +package com.zipcodewilmington.centrallibrary; + +public abstract class Book extends LibraryItem { + + private String author; + private String genre; + private String publicationDate; + private int pages; + + public Book(String author, String genre, String publicationDate, int numberOfPages) { + this.author = author; + this.genre = genre; + this.publicationDate = publicationDate; + this.pages = numberOfPages; + + } + + public String getAuthor() { + return author; + } + public void setAuthor(String author) { + this.author = author; + + } + + public String getGenre() { + return genre; + } + public void setGenre(String genre) { + this.genre = genre; + } + + public String getpublication() { + return publicationDate; + } + + public void serpublicationDate(String publicationDate) { + this.publicationDate = publicationDate; + } + + public int getPages() { + return pages; + } + public void setPages(int pages) { + this.pages = pages; + + } +} + diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java new file mode 100644 index 0000000..65a8605 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -0,0 +1,81 @@ +package com.zipcodewilmington.centrallibrary; + + +public abstract class LibraryItem { + private int id; + private String title; + private String location; + private boolean isAvailable; + +//constructor + + + public LibraryItem() { + + } + + public LibraryItem(int id, String title, String location){ + this.id = id; + this.title = title; + this.location = location; + this.isAvailable = true; + + //getters and setters + } + public int getId() { + return id; + } + public void setId(int id) { + this.id = id; + } + + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + + public String getLocation() { + return location; + } + public void setLocation(String location) { + this.location = location; + } + + public boolean isAvailable() { + return isAvailable; + } + public void setAvailable(boolean available) { + isAvailable = available; + } + + public void checkOut() { + this.isAvailable = false; + } + + public void checkIn() { + this.isAvailable = true; + + } + + public boolean matchesKeyword(String keyword) { + for (String field : getSearchableFields()) { + if (field != null && field.contains(keyword)) { + return true; + } + } + return false; + } + + public abstract double calculateLateFee(int daysLate); + public abstract int getMaxBorrowDays(); + public abstract String getItemType(); + public abstract String[] getSearchableFields(); + + + + +} + +