From 50fae817111b77390cdb48e2f28acbfc9e182d6b Mon Sep 17 00:00:00 2001 From: Nicolai Klokmose Date: Wed, 24 Jan 2024 10:53:52 +0100 Subject: [PATCH] Kek --- src/main/java/com/booleanuk/core/Article.java | 33 +++------ src/main/java/com/booleanuk/core/Author.java | 37 ++++++++++ src/main/java/com/booleanuk/core/Book.java | 33 +++------ src/main/java/com/booleanuk/core/Item.java | 31 ++++++++ src/main/java/com/booleanuk/core/Library.java | 73 +++---------------- src/main/java/com/booleanuk/core/Main.java | 38 ++++++++++ .../java/com/booleanuk/core/Newspaper.java | 13 ++-- .../java/com/booleanuk/core/ItemTest.java | 11 +++ 8 files changed, 154 insertions(+), 115 deletions(-) create mode 100644 src/main/java/com/booleanuk/core/Author.java create mode 100644 src/main/java/com/booleanuk/core/Item.java create mode 100644 src/main/java/com/booleanuk/core/Main.java create mode 100644 src/test/java/com/booleanuk/core/ItemTest.java diff --git a/src/main/java/com/booleanuk/core/Article.java b/src/main/java/com/booleanuk/core/Article.java index 1e359b0..f4d9f3b 100644 --- a/src/main/java/com/booleanuk/core/Article.java +++ b/src/main/java/com/booleanuk/core/Article.java @@ -1,35 +1,24 @@ package com.booleanuk.core; -public class Article { - String title; - +public class Article extends Item { + protected String title; + protected Author author; boolean onLoan = false; public Article(String title) { - this.title = title; + super(title); } - public boolean isOnLoan() { - return onLoan; + public Article(String title, Author author) { + super(title); + this.setAuthor(author); } - public String checkIn() { - if (!this.isOnLoan()) { - return "item is not currently on loan"; - } - - this.onLoan = false; - - return "item has been checked in"; + public Author getAuthor() { + return author; } - public String checkOut() { - if (this.isOnLoan()) { - return "item is currently on loan"; - } - - this.onLoan = true; - - return "item has been checked out"; + public void setAuthor(Author author) { + this.author = author; } } diff --git a/src/main/java/com/booleanuk/core/Author.java b/src/main/java/com/booleanuk/core/Author.java new file mode 100644 index 0000000..41b6773 --- /dev/null +++ b/src/main/java/com/booleanuk/core/Author.java @@ -0,0 +1,37 @@ +package com.booleanuk.core; + +public class Author { + private String name; + private int phoneNumber; + private String http; + + public Author(String name, int phoneNumber, String http) { + this.setName(name); + this.setPhoneNumber(phoneNumber); + this.setHttp(http); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(int phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public String getHttp() { + return http; + } + + public void setHttp(String http) { + this.http = http; + } +} diff --git a/src/main/java/com/booleanuk/core/Book.java b/src/main/java/com/booleanuk/core/Book.java index 9261f65..1d44c30 100644 --- a/src/main/java/com/booleanuk/core/Book.java +++ b/src/main/java/com/booleanuk/core/Book.java @@ -1,35 +1,24 @@ package com.booleanuk.core; -public class Book { - String title; - +public class Book extends Item { + protected String title; + protected Author author; boolean onLoan = false; public Book(String title) { - this.title = title; + super(title); } - public boolean isOnLoan() { - return onLoan; + public Book(String title, Author author) { + super(title); + this.setAuthor(author); } - public String checkIn() { - if (!this.isOnLoan()) { - return "item is not currently on loan"; - } - - this.onLoan = false; - - return "item has been checked in"; + public Author getAuthor() { + return author; } - public String checkOut() { - if (this.isOnLoan()) { - return "item is currently on loan"; - } - - this.onLoan = true; - - return "item has been checked out"; + public void setAuthor(Author author) { + this.author = author; } } diff --git a/src/main/java/com/booleanuk/core/Item.java b/src/main/java/com/booleanuk/core/Item.java new file mode 100644 index 0000000..a409a55 --- /dev/null +++ b/src/main/java/com/booleanuk/core/Item.java @@ -0,0 +1,31 @@ +package com.booleanuk.core; + +public abstract class Item { + String title; + + boolean onLoan = false; + + public Item(String title) { + this.title = title; + } + + public boolean isOnLoan() { + return onLoan; + } + + public String checkIn() { + if (!this.isOnLoan()) { + return "item is not currently on loan"; + } + this.onLoan = false; + return "item has been checked in"; + } + + public String checkOut() { + if (this.isOnLoan()) { + return "item is currently on loan"; + } + this.onLoan = true; + return "item has been checked out"; + } +} diff --git a/src/main/java/com/booleanuk/core/Library.java b/src/main/java/com/booleanuk/core/Library.java index f03ecf0..22f11da 100644 --- a/src/main/java/com/booleanuk/core/Library.java +++ b/src/main/java/com/booleanuk/core/Library.java @@ -1,29 +1,24 @@ package com.booleanuk.core; +import java.util.ArrayList; import java.util.List; public class Library { - List
articles; - List books; - List newspapers; + List items; - public void addToStock(Article item) { - this.articles.add(item); + public Library() { + this.items = new ArrayList<>(); } - public void addToStock(Book item) { - this.books.add(item); - } - - public void addToStock(Newspaper item) { - this.newspapers.add(item); + public void addToStock(Item item) { + this.items.add(item); } // The following methods may contain code that you are unfamiliar with. The strange syntax of article -> something // is called a lambda expression (https://www.w3schools.com/java/java_lambda.asp) public String checkInArticle(String title) { - List
filtered = this.articles.stream() - .filter(article -> article.title.equals(title)) + List filtered = this.items.stream() + .filter(item -> item.title.equals(title)) .toList(); if (filtered.size() < 1) { @@ -34,56 +29,8 @@ public String checkInArticle(String title) { } public String checkOutArticle(String title) { - List
filtered = this.articles.stream() - .filter(article -> article.title.equals(title)) - .toList(); - - if (filtered.size() < 1) { - return "item is not part of the library's collection"; - } - - return filtered.get(0).checkOut(); - } - - public String checkInBook(String title) { - List filtered = this.books.stream() - .filter(book -> book.title.equals(title)) - .toList(); - - if (filtered.size() < 1) { - return "item is not part of the library's collection"; - } - - return filtered.get(0).checkIn(); - } - - public String checkOutBook(String title) { - List filtered = this.books.stream() - .filter(book -> book.title.equals(title)) - .toList(); - - if (filtered.size() < 1) { - return "item is not part of the library's collection"; - } - - return filtered.get(0).checkOut(); - } - - public String checkInNewspaper(String title) { - List filtered = this.newspapers.stream() - .filter(newspaper -> newspaper.title.equals(title)) - .toList(); - - if (filtered.size() < 1) { - return "item is not part of the library's collection"; - } - - return filtered.get(0).checkIn(); - } - - public String checkOutNewspaper(String title) { - List filtered = this.newspapers.stream() - .filter(newspaper -> newspaper.title.equals(title)) + List filtered = this.items.stream() + .filter(item -> item.title.equals(title)) .toList(); if (filtered.size() < 1) { diff --git a/src/main/java/com/booleanuk/core/Main.java b/src/main/java/com/booleanuk/core/Main.java new file mode 100644 index 0000000..e24790f --- /dev/null +++ b/src/main/java/com/booleanuk/core/Main.java @@ -0,0 +1,38 @@ +package com.booleanuk.core; + +public class Main { + + public static void main(String[] args) { + Library library = new Library(); + Author author = new Author("George Lucas", 123456, "www.lol.dk"); + + Item item_1 = new Article("sw1"); + Item item_2 = new Book("sw2"); + Item item_3 = new Newspaper("sw3"); + Item item_4 = new Article("sw4"); + + Item item_5 = new Article("sw5", author); + + library.addToStock(item_1); + library.addToStock(item_2); + library.addToStock(item_3); + library.addToStock(item_4); + library.addToStock(item_5); + + System.out.println(library.checkInArticle("sw1")); + System.out.println(library.checkOutArticle("sw1")); + + System.out.println(library.checkInArticle("sw2")); + System.out.println(library.checkOutArticle("sw2")); + + System.out.println(library.checkInArticle("sw3")); + System.out.println(library.checkOutArticle("sw3")); + + System.out.println(library.checkInArticle("sw4")); + System.out.println(library.checkOutArticle("sw4")); + + System.out.println(library.checkInArticle("sw5")); + System.out.println(library.checkOutArticle("sw5")); + + } +} diff --git a/src/main/java/com/booleanuk/core/Newspaper.java b/src/main/java/com/booleanuk/core/Newspaper.java index 8411d9c..291251b 100644 --- a/src/main/java/com/booleanuk/core/Newspaper.java +++ b/src/main/java/com/booleanuk/core/Newspaper.java @@ -1,22 +1,19 @@ package com.booleanuk.core; -public class Newspaper { - String title; - +public class Newspaper extends Item { + protected String title; boolean onLoan = false; public Newspaper(String title) { - this.title = title; - } - - public boolean isOnLoan() { - return onLoan; + super(title); } + @Override public String checkIn() { return "newspapers are not available for loan"; } + @Override public String checkOut() { return "newspapers are not available for loan"; } diff --git a/src/test/java/com/booleanuk/core/ItemTest.java b/src/test/java/com/booleanuk/core/ItemTest.java new file mode 100644 index 0000000..5f29ca1 --- /dev/null +++ b/src/test/java/com/booleanuk/core/ItemTest.java @@ -0,0 +1,11 @@ +package com.booleanuk.core; + +import org.junit.jupiter.api.Test; + +public class ItemTest { + + @Test + public void testItemClass() { + + } +}