From 28e6b5e2ba1f1957584851b1190f57755b93d433 Mon Sep 17 00:00:00 2001 From: james Date: Mon, 9 Mar 2026 16:03:42 -0400 Subject: [PATCH 01/42] Library Name Subclass --- .../centrallibrary/MainApplication.java | 2 +- .../centrallibrary/Library.java | 16 ++++++++++++++++ .../centrallibrary/MainApplicationTest.java | 4 +++- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/Library.java diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java b/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java index c914d10..d8e8bed 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java @@ -1,4 +1,4 @@ -package com.zipcodewilmington.centralibrary; +package com.zipcodewilmington.centrallibrary; /** * Created by n3pjk on 6/9/2025. diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Library.java b/src/test/java/com/zipcodewilmington/centrallibrary/Library.java new file mode 100644 index 0000000..f207cb4 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Library.java @@ -0,0 +1,16 @@ +package com.zipcodewilmington.centrallibrary; + +import java.util.Scanner; + +public class Library { + + public static String name(String libraryNameString) { + Scanner scanner = new Scanner(System.in); + System.out.println(libraryNameString); + String userInput = scanner.nextLine(); + return userInput; + } + + + +} diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java index f706f32..daa47d7 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java @@ -1,7 +1,9 @@ -package com.zipcodewilmington.centralibrary; +package com.zipcodewilmington.centrallibrary; /** * Created by n3pjk on 6/9/2025. */ public class MainApplicationTest { + + } From bd13132d2d856f832797ecf3031cdfb38c725ece Mon Sep 17 00:00:00 2001 From: joseph Date: Mon, 9 Mar 2026 16:13:25 -0400 Subject: [PATCH 02/42] team --- .../centrallibrary/LibraryItem.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java 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..72b7a6d --- /dev/null +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -0,0 +1,16 @@ +package com.zipcodewilmington.centrallibrary; + +public abstract class LibraryItem { + private int id; + private String title; + private String location; + private boolean isAvailable; + + public LibraryItem(int id, String title, String location){ + this.id = id; + this.title = title; + this.location = location; + this.isAvailable = true; + } + +} From a946c933803b4cc49f82d0ced6196d35b37690b2 Mon Sep 17 00:00:00 2001 From: nishat Date: Mon, 9 Mar 2026 16:22:29 -0400 Subject: [PATCH 03/42] interface --- src/test/Reservable.java | 11 +++++++++++ src/test/Searchable.java | 5 +++++ .../zipcodewilmington/centrallibrary/LibraryMember | 0 3 files changed, 16 insertions(+) create mode 100644 src/test/Reservable.java create mode 100644 src/test/Searchable.java create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/LibraryMember diff --git a/src/test/Reservable.java b/src/test/Reservable.java new file mode 100644 index 0000000..d8fd84a --- /dev/null +++ b/src/test/Reservable.java @@ -0,0 +1,11 @@ +package library; + +class LibraryMember { + +} +public interface Reservable { + void reserve(LibraryMember member); + void cancelReserve(LibraryMember member); + boolean isReserved(); + +} diff --git a/src/test/Searchable.java b/src/test/Searchable.java new file mode 100644 index 0000000..0433ff5 --- /dev/null +++ b/src/test/Searchable.java @@ -0,0 +1,5 @@ +public interface Searchable { + boolean matchesKeyword(String keyword); + String[] getSearchableFields(); + } + diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/LibraryMember b/src/test/java/com/zipcodewilmington/centrallibrary/LibraryMember new file mode 100644 index 0000000..e69de29 From ec77aa8cefa88bf0ea61de640b7d395302f7b8d7 Mon Sep 17 00:00:00 2001 From: mahala Date: Mon, 9 Mar 2026 16:48:12 -0400 Subject: [PATCH 04/42] Address Class --- .../centrallibrary/Person.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/Person.java diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java new file mode 100644 index 0000000..95c36fd --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java @@ -0,0 +1,47 @@ +package com.github.zipcodewilmington.sample; + +public class Person { +} + +public class Address{ + //Instance vairables + private String street; + private String city; + private String state; + private String zipCode; + + //Defalut Setting +public Address() { + this.street = ""; + this.city = ""; + this.state = ""; + this.zipCode = ""; + } + + //Parameterized Constructor + public Address(String street, String city, String state, String zipCode) { + this.street = street; + this.city = city; + this.state = state; + this.zipCode = zipCode; + } + + //Getter + public String getStreet() { + return street; + } + public String getCity() { + return city; + } + public String getState() { + return state; + } + public String getZipcode() { + return zipCode; + } + //Override for cleaner view + public String toString() { + return street + ", " + city + ", " + state + " " + zipCode; + } +} + From d39f4783bc8cef17fe268852562721f5d29f1388 Mon Sep 17 00:00:00 2001 From: joseph Date: Mon, 9 Mar 2026 17:35:14 -0400 Subject: [PATCH 05/42] LibraryItemClass --- .../centrallibrary/LibraryItem.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 72b7a6d..cef60fd 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -11,6 +11,48 @@ public LibraryItem(int id, String title, String location){ this.title = title; this.location = location; this.isAvailable = true; + + + } + 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 abstract double calculateLateFee(int daysLate); + public abstract int getMaxBorrowDays(); + public abstract String getItemType(); } From d35ab2b1665dcce78f01621b920c3bcee48b62bc Mon Sep 17 00:00:00 2001 From: joseph Date: Mon, 9 Mar 2026 19:27:28 -0400 Subject: [PATCH 06/42] Item --- .../centrallibrary/LibraryItem.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index cef60fd..7bb657d 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -1,11 +1,12 @@ package com.zipcodewilmington.centrallibrary; -public abstract class LibraryItem { +public abstract class LibraryItem implements Searchable { private int id; private String title; private String location; private boolean isAvailable; +//constructor public LibraryItem(int id, String title, String location){ this.id = id; this.title = title; @@ -51,8 +52,23 @@ public void checkIn() { } + 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 int getMaxBorrowDays(); //lofi public abstract String getItemType(); + public abstract String[] getSearchableFields(); + + + } + + From 578e2fef110d3c599e61a2db54a72483a0702553 Mon Sep 17 00:00:00 2001 From: joseph Date: Mon, 9 Mar 2026 19:32:03 -0400 Subject: [PATCH 07/42] Josephs --- .../java/com/zipcodewilmington/centrallibrary/LibraryItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 7bb657d..55159db 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -1,6 +1,6 @@ package com.zipcodewilmington.centrallibrary; -public abstract class LibraryItem implements Searchable { +public abstract class LibraryItem { private int id; private String title; private String location; From a527d5888ec2e90a0b73c9edea585720b8d59d4f Mon Sep 17 00:00:00 2001 From: nishat Date: Mon, 9 Mar 2026 22:58:05 -0400 Subject: [PATCH 08/42] code --- src/test/java/person.java | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/test/java/person.java diff --git a/src/test/java/person.java b/src/test/java/person.java new file mode 100644 index 0000000..4b71ef5 --- /dev/null +++ b/src/test/java/person.java @@ -0,0 +1,45 @@ +package Library; +public class person { + private String name; + private String email; + private String phoneNumber; + private int age; + //constructor initialized variable instances that belong to the person class + + public person(String name, String email, String phoneNumber, int age) { + this.name = name; + this.email = email; + this.phoneNumber = phoneNumber; + this.age = age; + } + //getters and setters for the person class + public String getName() { + return name; + } + public int getAge() { + return age; + } + public String getEmail() { + return email; + } + public String getPhoneNumber() { + return phoneNumber; + } + + public void setName(String name) { + this.name = name; + } + public void setEmail(String email) { + this.email = email; + } + public void setPhoneNumber(String phoneNumber) { + if (phoneNumber == null || phoneNumber.trim().isEmpty()) { + throw new IllegalArgumentException("Phone number cannot be null or empty"); + } + this.phoneNumber = phoneNumber; +} +@Override + public String toString() { + return "person{" + "name='" + name + '\'' + ", email='" + email + '\'' + ", phoneNumber='" + phoneNumber + '\'' + ", age=" + age +'}'; + } +} \ No newline at end of file From 4ed5a6686bb4afd05892689c8c9f929bc8b7661c Mon Sep 17 00:00:00 2001 From: joseph Date: Tue, 10 Mar 2026 11:46:42 -0400 Subject: [PATCH 09/42] Changes --- .../java/com/zipcodewilmington/centrallibrary/LibraryItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 55159db..4d9aafc 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -10,7 +10,7 @@ public abstract class LibraryItem { public LibraryItem(int id, String title, String location){ this.id = id; this.title = title; - this.location = location; + this.location = location; this.isAvailable = true; From 4161ba2039fe2d795eafaf0403575a2884e45c89 Mon Sep 17 00:00:00 2001 From: josemcastillo7 Date: Tue, 10 Mar 2026 12:12:11 -0400 Subject: [PATCH 10/42] Josephs branch (#2) * team * LibraryItemClass * Item * Josephs * Changes --- .../centrallibrary/LibraryItem.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java 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..4d9aafc --- /dev/null +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -0,0 +1,74 @@ +package com.zipcodewilmington.centrallibrary; + +public abstract class LibraryItem { + private int id; + private String title; + private String location; + private boolean isAvailable; + +//constructor + public LibraryItem(int id, String title, String location){ + this.id = id; + this.title = title; + this.location = location; + this.isAvailable = true; + + + } + 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(); //lofi + public abstract String getItemType(); + public abstract String[] getSearchableFields(); + + + + +} + + From 06bc5b35a3769a9862f544fba7eea7251063b6c7 Mon Sep 17 00:00:00 2001 From: Jstrine09 Date: Tue, 10 Mar 2026 12:13:13 -0400 Subject: [PATCH 11/42] James branch (#3) * Address Class * Person.Java code --- .../centrallibrary/Address.java | 32 ++++++++++++++++ .../centrallibrary/Person.java | 37 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/Address.java create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/Person.java diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Address.java b/src/test/java/com/zipcodewilmington/centrallibrary/Address.java new file mode 100644 index 0000000..c15725e --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Address.java @@ -0,0 +1,32 @@ +package com.zipcodewilmington.centrallibrary; + + + +public class Address{ + private String street; + private String city; + private String state; + private String zipcode; + + public Address(String street, String city, String state, String zipcode) { + this.street = street; + this.city = city; + this.state = state; + this.zipcode = zipcode; + } + + public String getStreet() {return street; } + public String getCity() {return city; } + public String getState() {return state; } + public String getZipcode() {return zipcode; } + + public void SetStreet(String street) {this.street = state; } + public void SetCity(String city) {this.city = city; } + public void SetState(String state) {this.state = state; } + public void SetZipcode(String zipCode) {this.zipcode = zipCode; } + + @Override + public String toString() { + return street + ", " + city + ", " + state + ", " + zipcode; + } +} \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java new file mode 100644 index 0000000..27f85ec --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java @@ -0,0 +1,37 @@ +package com.zipcodewilmington.centrallibrary; + +public class Person { + private String name; + private String address; + private String phoneNumber; + private int age; + private String email; + + public Person(String name, String address, String phoneNumber, int age, String email) { + this.name = name; + this.address = address; + this.phoneNumber = phoneNumber; + setAge(age); + this.email = email; + } + + public String getName() {return name; } + public String getAddress() {return address; } + public String getPhoneNumber() {return phoneNumber; } + public int getAge() {return age; } + public String getEmail() {return email;} + + public void setName(String name) {this.name = name; } + public void setAddress(String address) {this.address = address; } + public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber; } + public void setAge(int age) { + if (age < 0) throw new IllegalArgumentException("Age cannot be negative."); + this.age = age; + } + public void setEmail(String email) {this.email = email; } + + @Override + public String toString() { + return name + ", " + address + ", " + phoneNumber + ", " + age + ", " + email; + } +} From e7616067b51242e6ad7a3cc9261596786c45b373 Mon Sep 17 00:00:00 2001 From: mahala Date: Tue, 10 Mar 2026 13:10:34 -0400 Subject: [PATCH 12/42] Address Class --- .../centrallibrary/Address.java | 44 +++++++++++++++++++ .../centrallibrary/MainApplication.java | 2 +- .../centrallibrary/MainApplicationTest.java | 2 +- 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/zipcodewilmington/centrallibrary/Address.java diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Address.java b/src/main/java/com/zipcodewilmington/centrallibrary/Address.java new file mode 100644 index 0000000..be532d3 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Address.java @@ -0,0 +1,44 @@ +package com.zipcodewilmington.centrallibrary; + + public class Address { + //Instance vairables + private String street; + private String city; + private String state; + private String zipCode; + + //Defalut Setting +public Address() { + this.street = ""; + this.city = ""; + this.state = ""; + this.zipCode = ""; + } + + //Parameterized Constructor + public Address(String street, String city, String state, String zipCode) { + this.street = street; + this.city = city; + this.state = state; + this.zipCode = zipCode; + } + + //Getter + public String gitStreet() { + return street; + } + public String gitCity() { + return city; + } + public String gitState() { + return state; + } + public String gitZipcode() { + return zipCode; + } + //Override for cleaner view + public String AddressString() { + return street + ", " + city + ", " + state + ", " + zipCode; + } +} + diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java b/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java index c914d10..d8e8bed 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java @@ -1,4 +1,4 @@ -package com.zipcodewilmington.centralibrary; +package com.zipcodewilmington.centrallibrary; /** * Created by n3pjk on 6/9/2025. diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java index f706f32..ab2cf00 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java @@ -1,4 +1,4 @@ -package com.zipcodewilmington.centralibrary; +package com.zipcodewilmington.centrallibrary; /** * Created by n3pjk on 6/9/2025. From 86f30f8f7f947fb865583289cc4fc172eb116c30 Mon Sep 17 00:00:00 2001 From: mahala Date: Tue, 10 Mar 2026 13:48:13 -0400 Subject: [PATCH 13/42] saved changes --- .../centrallibrary/Address.java | 12 ++--- src/test/java/com/Main.java | 7 +++ .../centrallibrary/Person.java | 44 ++----------------- 3 files changed, 16 insertions(+), 47 deletions(-) create mode 100644 src/test/java/com/Main.java diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Address.java b/src/main/java/com/zipcodewilmington/centrallibrary/Address.java index be532d3..293a47c 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Address.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Address.java @@ -1,6 +1,6 @@ package com.zipcodewilmington.centrallibrary; - public class Address { +public class Address { //Instance vairables private String street; private String city; @@ -8,11 +8,11 @@ public class Address { private String zipCode; //Defalut Setting -public Address() { - this.street = ""; - this.city = ""; - this.state = ""; - this.zipCode = ""; + public Address() { + this.street = ""; + this.city = ""; + this.state = ""; + this.zipCode = ""; } //Parameterized Constructor diff --git a/src/test/java/com/Main.java b/src/test/java/com/Main.java new file mode 100644 index 0000000..d709fd1 --- /dev/null +++ b/src/test/java/com/Main.java @@ -0,0 +1,7 @@ +package com; + +public class Main { + public static void main(String[] args) { + + } +} diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java index 95c36fd..9f1b476 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java @@ -1,47 +1,9 @@ -package com.github.zipcodewilmington.sample; +package com.zipcodewilmington.centrallibrary; public class Person { -} - -public class Address{ - //Instance vairables - private String street; - private String city; - private String state; - private String zipCode; - //Defalut Setting -public Address() { - this.street = ""; - this.city = ""; - this.state = ""; - this.zipCode = ""; - } + +} - //Parameterized Constructor - public Address(String street, String city, String state, String zipCode) { - this.street = street; - this.city = city; - this.state = state; - this.zipCode = zipCode; - } - //Getter - public String getStreet() { - return street; - } - public String getCity() { - return city; - } - public String getState() { - return state; - } - public String getZipcode() { - return zipCode; - } - //Override for cleaner view - public String toString() { - return street + ", " + city + ", " + state + " " + zipCode; - } -} From beda9a48d93b4b2aa7ec8a9781cb60ae0b0f3bd9 Mon Sep 17 00:00:00 2001 From: james Date: Tue, 10 Mar 2026 14:05:56 -0400 Subject: [PATCH 14/42] Created test file for Person --- .vscode/settings.json | 3 ++ pom.xml | 8 +++++ .../centrallibrary/Person.java | 10 +++--- .../centrallibrary/PersonTest.java | 34 +++++++++++++++++++ src/test/java/person.java | 2 +- 5 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index bde0b59..08ced97 100644 --- a/pom.xml +++ b/pom.xml @@ -9,4 +9,12 @@ 1.0-SNAPSHOT + + + + junit + junit + 4.13.2 + + \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java index 27f85ec..e70b3fa 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java @@ -2,27 +2,25 @@ public class Person { private String name; - private String address; private String phoneNumber; private int age; private String email; - public Person(String name, String address, String phoneNumber, int age, String email) { + public Person(String name, int age, String email, String phoneNumber) { this.name = name; - this.address = address; this.phoneNumber = phoneNumber; setAge(age); this.email = email; } public String getName() {return name; } - public String getAddress() {return address; } + public String getPhoneNumber() {return phoneNumber; } public int getAge() {return age; } public String getEmail() {return email;} public void setName(String name) {this.name = name; } - public void setAddress(String address) {this.address = address; } + public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber; } public void setAge(int age) { if (age < 0) throw new IllegalArgumentException("Age cannot be negative."); @@ -32,6 +30,6 @@ public void setAge(int age) { @Override public String toString() { - return name + ", " + address + ", " + phoneNumber + ", " + age + ", " + email; + return name + ", " + phoneNumber + ", " + age + ", " + email; } } diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java new file mode 100644 index 0000000..a9eb483 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java @@ -0,0 +1,34 @@ +package com.zipcodewilmington.centrallibrary; + + +import org.junit.Test; +import org.junit.Assert; + + +public class PersonTest { + + @Test + public void testPersonConstructorAndGetters() { + // given + String name = "Joe"; + String phoneNumber = "302-555-1111"; + String email = "joeschmo@gmail.com"; + int age = 30; + + // when + Person person = new Person (name, age, email, phoneNumber); + + Assert.assertEquals(name, person.getName()); + Assert.assertEquals(phoneNumber, person.getPhoneNumber()); + Assert.assertEquals(email, person.getEmail()); + Assert.assertEquals(age, person.getAge()); + } + @Test + public void testSetAge_negativeAge_throwsException() { + Person person = new Person("Joe", 30, "joeschmo@gmail.com", "123-456-7890"); + + Assert.assertThrows(IllegalArgumentException.class, () -> { + person.setAge(-1); + }); + } +} diff --git a/src/test/java/person.java b/src/test/java/person.java index 4b71ef5..a6304f4 100644 --- a/src/test/java/person.java +++ b/src/test/java/person.java @@ -1,4 +1,4 @@ -package Library; + public class person { private String name; private String email; From 2ea086c301b545d0edca13303c6f9db5e02b9d32 Mon Sep 17 00:00:00 2001 From: james Date: Tue, 10 Mar 2026 14:15:16 -0400 Subject: [PATCH 15/42] Address Test File works --- .../centrallibrary/AddressTest.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java new file mode 100644 index 0000000..f25aa34 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java @@ -0,0 +1,25 @@ +package com.zipcodewilmington.centrallibrary; + +import org.junit.Assert; +import org.junit.Test; + +public class AddressTest { + + @Test + public void testAddressConstructorAndGetters() { + // given + String street = "Joe"; + String city = "302-555-1111"; + String state = "joeschmo@gmail.com"; + String zipcode = ""; + + // when + Address address = new Address (street, city, state,zipcode); + + Assert.assertEquals(street, address.getStreet()); + Assert.assertEquals(city, address.getCity()); + Assert.assertEquals(state, address.getState()); + Assert.assertEquals(zipcode, address.getZipcode()); + } + +} From 80b98d0879aae0e266ddce8d7a95e353aab9cd3a Mon Sep 17 00:00:00 2001 From: james Date: Tue, 10 Mar 2026 14:59:30 -0400 Subject: [PATCH 16/42] Corrected the Address test --- .../com/zipcodewilmington/centrallibrary/AddressTest.java | 8 ++++---- .../java/com/zipcodewilmington/centrallibrary/Person.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java index f25aa34..1a48f82 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java @@ -8,10 +8,10 @@ public class AddressTest { @Test public void testAddressConstructorAndGetters() { // given - String street = "Joe"; - String city = "302-555-1111"; - String state = "joeschmo@gmail.com"; - String zipcode = ""; + String street = "123 North St."; + String city = "Narnia"; + String state = "Fairytaleland"; + String zipcode = "12345"; // when Address address = new Address (street, city, state,zipcode); diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java index e70b3fa..c836e13 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java @@ -1,6 +1,6 @@ package com.zipcodewilmington.centrallibrary; -public class Person { +public final class Person { private String name; private String phoneNumber; private int age; From 4e4c9bdcb44ccc42fdfed9ca8ea0fc60ebafc258 Mon Sep 17 00:00:00 2001 From: joseph Date: Tue, 10 Mar 2026 15:16:16 -0400 Subject: [PATCH 17/42] added Book.java --- .../centrallibrary/Book.java | 50 +++++++++++++++++++ .../centrallibrary/LibraryItem.java | 11 +++- 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/zipcodewilmington/centrallibrary/Book.java 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..0055253 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java @@ -0,0 +1,50 @@ +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; + } +} + +//lofi +//lofi \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 4d9aafc..65a8605 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -1,5 +1,6 @@ package com.zipcodewilmington.centrallibrary; + public abstract class LibraryItem { private int id; private String title; @@ -7,13 +8,19 @@ public abstract class LibraryItem { 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; @@ -62,7 +69,7 @@ public boolean matchesKeyword(String keyword) { } public abstract double calculateLateFee(int daysLate); - public abstract int getMaxBorrowDays(); //lofi + public abstract int getMaxBorrowDays(); public abstract String getItemType(); public abstract String[] getSearchableFields(); From 608faa3eca9c580679431f6f52aa57d256b7c0bc Mon Sep 17 00:00:00 2001 From: Jstrine09 Date: Tue, 10 Mar 2026 15:23:17 -0400 Subject: [PATCH 18/42] Address Test File (#5) * Created test file for Person * Address Test File works * Corrected the Address test --- .vscode/settings.json | 3 ++ pom.xml | 8 +++++ .../centrallibrary/AddressTest.java | 25 ++++++++++++++ .../centrallibrary/Person.java | 12 +++---- .../centrallibrary/PersonTest.java | 34 +++++++++++++++++++ src/test/java/person.java | 2 +- 6 files changed, 76 insertions(+), 8 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index bde0b59..08ced97 100644 --- a/pom.xml +++ b/pom.xml @@ -9,4 +9,12 @@ 1.0-SNAPSHOT + + + + junit + junit + 4.13.2 + + \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java new file mode 100644 index 0000000..1a48f82 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java @@ -0,0 +1,25 @@ +package com.zipcodewilmington.centrallibrary; + +import org.junit.Assert; +import org.junit.Test; + +public class AddressTest { + + @Test + public void testAddressConstructorAndGetters() { + // given + String street = "123 North St."; + String city = "Narnia"; + String state = "Fairytaleland"; + String zipcode = "12345"; + + // when + Address address = new Address (street, city, state,zipcode); + + Assert.assertEquals(street, address.getStreet()); + Assert.assertEquals(city, address.getCity()); + Assert.assertEquals(state, address.getState()); + Assert.assertEquals(zipcode, address.getZipcode()); + } + +} diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java index 0dc62e3..5018f75 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java @@ -1,29 +1,27 @@ package com.zipcodewilmington.centrallibrary; -public class Person { +public final class Person { private String name; - private String address; private String phoneNumber; private int age; private String email; - public Person(String name, String address, String phoneNumber, int age, String email) { + public Person(String name, int age, String email, String phoneNumber) { this.name = name; - this.address = address; this.phoneNumber = phoneNumber; setAge(age); this.email = email; } public String getName() {return name; } - public String getAddress() {return address; } + public String getPhoneNumber() {return phoneNumber; } public int getAge() {return age; } public String getEmail() {return email;} public void setName(String name) {this.name = name; } - public void setAddress(String address) {this.address = address; } + public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber; } public void setAge(int age) { if (age < 0) throw new IllegalArgumentException("Age cannot be negative."); @@ -33,7 +31,7 @@ public void setAge(int age) { @Override public String toString() { - return name + ", " + address + ", " + phoneNumber + ", " + age + ", " + email; + return name + ", " + phoneNumber + ", " + age + ", " + email; } } diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java new file mode 100644 index 0000000..a9eb483 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java @@ -0,0 +1,34 @@ +package com.zipcodewilmington.centrallibrary; + + +import org.junit.Test; +import org.junit.Assert; + + +public class PersonTest { + + @Test + public void testPersonConstructorAndGetters() { + // given + String name = "Joe"; + String phoneNumber = "302-555-1111"; + String email = "joeschmo@gmail.com"; + int age = 30; + + // when + Person person = new Person (name, age, email, phoneNumber); + + Assert.assertEquals(name, person.getName()); + Assert.assertEquals(phoneNumber, person.getPhoneNumber()); + Assert.assertEquals(email, person.getEmail()); + Assert.assertEquals(age, person.getAge()); + } + @Test + public void testSetAge_negativeAge_throwsException() { + Person person = new Person("Joe", 30, "joeschmo@gmail.com", "123-456-7890"); + + Assert.assertThrows(IllegalArgumentException.class, () -> { + person.setAge(-1); + }); + } +} diff --git a/src/test/java/person.java b/src/test/java/person.java index 4b71ef5..a6304f4 100644 --- a/src/test/java/person.java +++ b/src/test/java/person.java @@ -1,4 +1,4 @@ -package Library; + public class person { private String name; private String email; From e4c81a6edc173ea1ee3dcf61d73fc9a4bd14b874 Mon Sep 17 00:00:00 2001 From: joseph Date: Tue, 10 Mar 2026 15:34:36 -0400 Subject: [PATCH 19/42] book --- src/main/java/com/zipcodewilmington/centrallibrary/Book.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java index 0055253..4573385 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java @@ -43,8 +43,7 @@ public int getPages() { } public void setPages(int pages) { this.pages = pages; + } } -//lofi -//lofi \ No newline at end of file From 20dc8c454e48027a26174a6506b1bdeda74df637 Mon Sep 17 00:00:00 2001 From: josemcastillo7 Date: Tue, 10 Mar 2026 15:54:48 -0400 Subject: [PATCH 20/42] Josephs branch (#6) * team * LibraryItemClass * Item * Josephs * Changes * added Book.java * book --------- Co-authored-by: Nishatlabiba98 --- .../centrallibrary/Book.java | 49 +++++++++++++++++++ .../centrallibrary/LibraryItem.java | 9 ++++ 2 files changed, 58 insertions(+) create mode 100644 src/main/java/com/zipcodewilmington/centrallibrary/Book.java 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 index 4d9aafc..77381cd 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -1,5 +1,6 @@ package com.zipcodewilmington.centrallibrary; + public abstract class LibraryItem { private int id; private String title; @@ -7,12 +8,19 @@ public abstract class LibraryItem { 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() { @@ -62,6 +70,7 @@ public boolean matchesKeyword(String keyword) { } public abstract double calculateLateFee(int daysLate); + public abstract int getMaxBorrowDays(); public abstract int getMaxBorrowDays(); //lofi public abstract String getItemType(); public abstract String[] getSearchableFields(); From 767d3d3f0e621700f3cc6c10c30b0d6202ee2a56 Mon Sep 17 00:00:00 2001 From: james Date: Tue, 10 Mar 2026 19:51:17 -0400 Subject: [PATCH 21/42] Finished the Periodical File --- .../centrallibrary/Book.java | 2 +- .../centrallibrary/LibraryItem.java | 29 +++++++----- .../centrallibrary/Periodical.java | 45 +++++++++++++++++++ 3 files changed, 63 insertions(+), 13 deletions(-) rename src/{main => test}/java/com/zipcodewilmington/centrallibrary/Book.java (99%) rename src/{main => test}/java/com/zipcodewilmington/centrallibrary/LibraryItem.java (82%) create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/Periodical.java diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java b/src/test/java/com/zipcodewilmington/centrallibrary/Book.java similarity index 99% rename from src/main/java/com/zipcodewilmington/centrallibrary/Book.java rename to src/test/java/com/zipcodewilmington/centrallibrary/Book.java index 4573385..7c44781 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Book.java @@ -1,7 +1,7 @@ package com.zipcodewilmington.centrallibrary; public abstract class Book extends LibraryItem { - + private String author; private String genre; private String publicationDate; diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java similarity index 82% rename from src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java rename to src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 77381cd..2936c1a 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -1,6 +1,5 @@ package com.zipcodewilmington.centrallibrary; - public abstract class LibraryItem { private int id; private String title; @@ -8,19 +7,15 @@ public abstract class LibraryItem { 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 LibraryItem(String id2, String title2, String location2) { } public int getId() { @@ -69,12 +64,22 @@ public boolean matchesKeyword(String keyword) { return false; } - public abstract double calculateLateFee(int daysLate); - public abstract int getMaxBorrowDays(); - public abstract int getMaxBorrowDays(); //lofi - public abstract String getItemType(); + + public abstract String[] getSearchableFields(); + public double calculateLateFee(int daysLate) { + return daysLate * 0.25; + } + + + public int getMaxBorrowDays() { + return 7; +} + + public String getItemType() { + return "Periodical"; +} diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Periodical.java b/src/test/java/com/zipcodewilmington/centrallibrary/Periodical.java new file mode 100644 index 0000000..b0b88b4 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Periodical.java @@ -0,0 +1,45 @@ +package com.zipcodewilmington.centrallibrary; + +public class Periodical extends LibraryItem { + private String publisher; + private String issn; + private String volume; + private String issueNumber; + private String publicationDate; + + public Periodical(String id, String title, String location, String publisher, String issn, String volume, String issueNumber, String publicationDate) { + super(id, title, location); + this.publisher = publisher; + this.issn = issn; + this.volume = volume; + this.issueNumber = issueNumber; + this.publicationDate = publicationDate; + } + + public String getPublisher() {return publisher;} + public String getIssn() {return issn;} + public String getVolume() {return volume;} + public String getIssueNumber() {return issueNumber;} + public String getPublicationDate() {return publicationDate;} + + @Override + public double calculateLateFee(int daysLate) { + return daysLate * 0.25; + } + + @Override + public int getMaxBorrowDays() { + return 7; + } + + @Override + public String getItemType() { + return "Periodical"; + } + + // Searchable + @Override + public String[] getSearchableFields() { + return new String[]{getTitle(), publisher, issn}; + } +} From 0a899dd4fff29a472dc3db36045f841c0428bf04 Mon Sep 17 00:00:00 2001 From: james Date: Tue, 10 Mar 2026 20:11:07 -0400 Subject: [PATCH 22/42] Periodical Test File complete --- .../centrallibrary/PeriodicalTest.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/PeriodicalTest.java diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/PeriodicalTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/PeriodicalTest.java new file mode 100644 index 0000000..26ac4b7 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/PeriodicalTest.java @@ -0,0 +1,48 @@ +package com.zipcodewilmington.centrallibrary; + +import org.junit.Assert; +import org.junit.Test; + +public class PeriodicalTest { + + @Test + public void testPeriodicalConstructorAndGetters() { + // given + String id = "P001"; + String title = "Cool Magazine"; + String location = "Wilmington"; + String publisher = "Pixar"; + String issn = "394851939422"; + String volume = "4"; + String issueNumber = "2"; + String publicationDate = "2/2/22"; + + // when + Periodical periodical = new Periodical (id, title, location, publisher, issn, volume, issueNumber, publicationDate); + + Assert.assertEquals(publisher, periodical.getPublisher()); + Assert.assertEquals(issn, periodical.getIssn()); + Assert.assertEquals(volume, periodical.getVolume()); + Assert.assertEquals(issueNumber, periodical.getIssueNumber()); + Assert.assertEquals(publicationDate, periodical.getPublicationDate()); + } + + @Test + public void testPeriodicalLateFee() { + // given + Periodical periodical = new Periodical("P001", "Byte", "P1", "McGraw-Hill", "0360-5280", "6", "8", "08/01/1981"); + + // then + Assert.assertEquals(2.50, periodical.calculateLateFee(10), 0.001); + } + + + @Test + public void testPeriodicalMaxBorrowDays() { + // given + Periodical periodical = new Periodical("P001", "Byte", "P1", "McGraw-Hill", "0360-5280", "6", "8", "08/01/1981"); + + // then + Assert.assertEquals(7, periodical.getMaxBorrowDays()); + } +} From 41c2ab81406fffb4dca4d46da6f45a700840a353 Mon Sep 17 00:00:00 2001 From: Jstrine09 Date: Tue, 10 Mar 2026 20:50:10 -0400 Subject: [PATCH 23/42] Finished the Periodical File (#7) * Created test file for Person * Address Test File works * Corrected the Address test * Finished the Periodical File * Periodical Test File complete --- .../centrallibrary/Book.java | 2 +- .../centrallibrary/LibraryItem.java | 29 ++++++----- .../centrallibrary/Periodical.java | 45 +++++++++++++++++ .../centrallibrary/PeriodicalTest.java | 48 +++++++++++++++++++ 4 files changed, 111 insertions(+), 13 deletions(-) rename src/{main => test}/java/com/zipcodewilmington/centrallibrary/Book.java (99%) rename src/{main => test}/java/com/zipcodewilmington/centrallibrary/LibraryItem.java (82%) create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/Periodical.java create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/PeriodicalTest.java diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java b/src/test/java/com/zipcodewilmington/centrallibrary/Book.java similarity index 99% rename from src/main/java/com/zipcodewilmington/centrallibrary/Book.java rename to src/test/java/com/zipcodewilmington/centrallibrary/Book.java index 4573385..7c44781 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Book.java @@ -1,7 +1,7 @@ package com.zipcodewilmington.centrallibrary; public abstract class Book extends LibraryItem { - + private String author; private String genre; private String publicationDate; diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java similarity index 82% rename from src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java rename to src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 77381cd..2936c1a 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -1,6 +1,5 @@ package com.zipcodewilmington.centrallibrary; - public abstract class LibraryItem { private int id; private String title; @@ -8,19 +7,15 @@ public abstract class LibraryItem { 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 LibraryItem(String id2, String title2, String location2) { } public int getId() { @@ -69,12 +64,22 @@ public boolean matchesKeyword(String keyword) { return false; } - public abstract double calculateLateFee(int daysLate); - public abstract int getMaxBorrowDays(); - public abstract int getMaxBorrowDays(); //lofi - public abstract String getItemType(); + + public abstract String[] getSearchableFields(); + public double calculateLateFee(int daysLate) { + return daysLate * 0.25; + } + + + public int getMaxBorrowDays() { + return 7; +} + + public String getItemType() { + return "Periodical"; +} diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Periodical.java b/src/test/java/com/zipcodewilmington/centrallibrary/Periodical.java new file mode 100644 index 0000000..b0b88b4 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Periodical.java @@ -0,0 +1,45 @@ +package com.zipcodewilmington.centrallibrary; + +public class Periodical extends LibraryItem { + private String publisher; + private String issn; + private String volume; + private String issueNumber; + private String publicationDate; + + public Periodical(String id, String title, String location, String publisher, String issn, String volume, String issueNumber, String publicationDate) { + super(id, title, location); + this.publisher = publisher; + this.issn = issn; + this.volume = volume; + this.issueNumber = issueNumber; + this.publicationDate = publicationDate; + } + + public String getPublisher() {return publisher;} + public String getIssn() {return issn;} + public String getVolume() {return volume;} + public String getIssueNumber() {return issueNumber;} + public String getPublicationDate() {return publicationDate;} + + @Override + public double calculateLateFee(int daysLate) { + return daysLate * 0.25; + } + + @Override + public int getMaxBorrowDays() { + return 7; + } + + @Override + public String getItemType() { + return "Periodical"; + } + + // Searchable + @Override + public String[] getSearchableFields() { + return new String[]{getTitle(), publisher, issn}; + } +} diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/PeriodicalTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/PeriodicalTest.java new file mode 100644 index 0000000..26ac4b7 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/PeriodicalTest.java @@ -0,0 +1,48 @@ +package com.zipcodewilmington.centrallibrary; + +import org.junit.Assert; +import org.junit.Test; + +public class PeriodicalTest { + + @Test + public void testPeriodicalConstructorAndGetters() { + // given + String id = "P001"; + String title = "Cool Magazine"; + String location = "Wilmington"; + String publisher = "Pixar"; + String issn = "394851939422"; + String volume = "4"; + String issueNumber = "2"; + String publicationDate = "2/2/22"; + + // when + Periodical periodical = new Periodical (id, title, location, publisher, issn, volume, issueNumber, publicationDate); + + Assert.assertEquals(publisher, periodical.getPublisher()); + Assert.assertEquals(issn, periodical.getIssn()); + Assert.assertEquals(volume, periodical.getVolume()); + Assert.assertEquals(issueNumber, periodical.getIssueNumber()); + Assert.assertEquals(publicationDate, periodical.getPublicationDate()); + } + + @Test + public void testPeriodicalLateFee() { + // given + Periodical periodical = new Periodical("P001", "Byte", "P1", "McGraw-Hill", "0360-5280", "6", "8", "08/01/1981"); + + // then + Assert.assertEquals(2.50, periodical.calculateLateFee(10), 0.001); + } + + + @Test + public void testPeriodicalMaxBorrowDays() { + // given + Periodical periodical = new Periodical("P001", "Byte", "P1", "McGraw-Hill", "0360-5280", "6", "8", "08/01/1981"); + + // then + Assert.assertEquals(7, periodical.getMaxBorrowDays()); + } +} From 19a8b7ac12cad27f87e7d9c4635bd6581827ed0a Mon Sep 17 00:00:00 2001 From: nishat Date: Tue, 10 Mar 2026 21:59:25 -0400 Subject: [PATCH 24/42] added jackson library to the pom file --- pom.xml | 20 ++++++++++++++- src/main/resources/library.json | 0 src/test/java/person.java | 45 --------------------------------- 3 files changed, 19 insertions(+), 46 deletions(-) create mode 100644 src/main/resources/library.json delete mode 100644 src/test/java/person.java diff --git a/pom.xml b/pom.xml index bde0b59..552f02c 100644 --- a/pom.xml +++ b/pom.xml @@ -8,5 +8,23 @@ central-library 1.0-SNAPSHOT + + + com.fasterxml.jackson.core + jackson-databind + 2.16.1 + + + org.junit.jupiter + junit-jupiter + 5.10.0 + test + + - \ No newline at end of file + + 17 + 17 + + + diff --git a/src/main/resources/library.json b/src/main/resources/library.json new file mode 100644 index 0000000..e69de29 diff --git a/src/test/java/person.java b/src/test/java/person.java deleted file mode 100644 index 4b71ef5..0000000 --- a/src/test/java/person.java +++ /dev/null @@ -1,45 +0,0 @@ -package Library; -public class person { - private String name; - private String email; - private String phoneNumber; - private int age; - //constructor initialized variable instances that belong to the person class - - public person(String name, String email, String phoneNumber, int age) { - this.name = name; - this.email = email; - this.phoneNumber = phoneNumber; - this.age = age; - } - //getters and setters for the person class - public String getName() { - return name; - } - public int getAge() { - return age; - } - public String getEmail() { - return email; - } - public String getPhoneNumber() { - return phoneNumber; - } - - public void setName(String name) { - this.name = name; - } - public void setEmail(String email) { - this.email = email; - } - public void setPhoneNumber(String phoneNumber) { - if (phoneNumber == null || phoneNumber.trim().isEmpty()) { - throw new IllegalArgumentException("Phone number cannot be null or empty"); - } - this.phoneNumber = phoneNumber; -} -@Override - public String toString() { - return "person{" + "name='" + name + '\'' + ", email='" + email + '\'' + ", phoneNumber='" + phoneNumber + '\'' + ", age=" + age +'}'; - } -} \ No newline at end of file From d004237cd19c34ecbeba4d842bfa6f67d92d0bdc Mon Sep 17 00:00:00 2001 From: james Date: Wed, 11 Mar 2026 09:17:45 -0400 Subject: [PATCH 25/42] Book.java edits --- pom.xml | 12 +++++++++++- .../com/zipcodewilmington/centrallibrary/Book.java | 11 +++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 08ced97..c0bd2c1 100644 --- a/pom.xml +++ b/pom.xml @@ -11,10 +11,20 @@ + + com.fasterxml.jackson.core + jackson-databind + 2.16.1 + junit junit 4.13.2 - \ No newline at end of file + + + 17 + 17 + + diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Book.java b/src/test/java/com/zipcodewilmington/centrallibrary/Book.java index 7c44781..34740ff 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/Book.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Book.java @@ -1,13 +1,14 @@ package com.zipcodewilmington.centrallibrary; -public abstract class Book extends LibraryItem { +public 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) { + public Book(String id, String title, String location, String author, String genre, String publicationDate, int numberOfPages) { + super(id, title, location); this.author = author; this.genre = genre; this.publicationDate = publicationDate; @@ -45,5 +46,11 @@ public void setPages(int pages) { this.pages = pages; } + + @Override + public String[] getSearchableFields() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getSearchableFields'"); + } } From af3ba3f8e42c5a4f74717cc02ee928248daee5d6 Mon Sep 17 00:00:00 2001 From: james Date: Wed, 11 Mar 2026 09:55:46 -0400 Subject: [PATCH 26/42] Pom.xml --- pom.xml | 6 ++++++ .../java/com/zipcodewilmington/centrallibrary/Person.java | 8 ++++++-- .../com/zipcodewilmington/centrallibrary/PersonTest.java | 6 +++--- .../com/zipcodewilmington/centrallibrary}/Reservable.java | 2 +- .../com/zipcodewilmington/centrallibrary}/Searchable.java | 1 + 5 files changed, 17 insertions(+), 6 deletions(-) rename src/test/{ => java/com/zipcodewilmington/centrallibrary}/Reservable.java (78%) rename src/test/{ => java/com/zipcodewilmington/centrallibrary}/Searchable.java (72%) diff --git a/pom.xml b/pom.xml index 552f02c..480b1a6 100644 --- a/pom.xml +++ b/pom.xml @@ -20,6 +20,12 @@ 5.10.0 test + + + junit + junit + 4.12 + diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java index 292132e..47cf203 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java @@ -1,13 +1,13 @@ package com.zipcodewilmington.centrallibrary; -public class person { +public class Person { private String name; private String email; private String phoneNumber; private int age; //constructor initialized variable instances that belong to the person class - public person(String name, String email, String phoneNumber, int age) { + public Person(String name, int age, String phoneNumber, String email) { this.name = name; this.email = email; this.phoneNumber = phoneNumber; @@ -43,4 +43,8 @@ public void setPhoneNumber(String phoneNumber) { public String toString() { return "person{" + "name='" + name + '\'' + ", email='" + email + '\'' + ", phoneNumber='" + phoneNumber + '\'' + ", age=" + age +'}'; } + + void setAge(int i) { + throw new UnsupportedOperationException("Not supported yet."); + } } \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java index a9eb483..c85cb4c 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java @@ -19,13 +19,13 @@ public void testPersonConstructorAndGetters() { Person person = new Person (name, age, email, phoneNumber); Assert.assertEquals(name, person.getName()); - Assert.assertEquals(phoneNumber, person.getPhoneNumber()); - Assert.assertEquals(email, person.getEmail()); Assert.assertEquals(age, person.getAge()); + Assert.assertEquals(email, person.getEmail()); + Assert.assertEquals(phoneNumber, person.getPhoneNumber()); } @Test public void testSetAge_negativeAge_throwsException() { - Person person = new Person("Joe", 30, "joeschmo@gmail.com", "123-456-7890"); + Person person = new Person("Joe", 30, "123-456-7890", "joeschmo@gmail.com"); Assert.assertThrows(IllegalArgumentException.class, () -> { person.setAge(-1); diff --git a/src/test/Reservable.java b/src/test/java/com/zipcodewilmington/centrallibrary/Reservable.java similarity index 78% rename from src/test/Reservable.java rename to src/test/java/com/zipcodewilmington/centrallibrary/Reservable.java index d8fd84a..4538bd8 100644 --- a/src/test/Reservable.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Reservable.java @@ -1,4 +1,4 @@ -package library; +package com.zipcodewilmington.centrallibrary; class LibraryMember { diff --git a/src/test/Searchable.java b/src/test/java/com/zipcodewilmington/centrallibrary/Searchable.java similarity index 72% rename from src/test/Searchable.java rename to src/test/java/com/zipcodewilmington/centrallibrary/Searchable.java index 0433ff5..132a1da 100644 --- a/src/test/Searchable.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Searchable.java @@ -1,3 +1,4 @@ +package com.zipcodewilmington.centrallibrary; public interface Searchable { boolean matchesKeyword(String keyword); String[] getSearchableFields(); From 82e681fc75775f5e2e443eff51e43b057e76f2b1 Mon Sep 17 00:00:00 2001 From: james Date: Wed, 11 Mar 2026 10:01:16 -0400 Subject: [PATCH 27/42] Changes to code format --- .../centrallibrary/Address.java | 0 .../centrallibrary/Book.java | 0 .../centrallibrary/Library.java | 0 .../centrallibrary/LibraryItem.java | 0 .../centrallibrary/LibraryMember | 0 .../centrallibrary/Periodical.java | 0 .../centrallibrary}/person.java | 1 + .../centrallibrary/Person.java | 37 ------------------- .../centrallibrary/PersonTest.java | 2 +- 9 files changed, 2 insertions(+), 38 deletions(-) rename src/{test => main}/java/com/zipcodewilmington/centrallibrary/Address.java (100%) rename src/{test => main}/java/com/zipcodewilmington/centrallibrary/Book.java (100%) rename src/{test => main}/java/com/zipcodewilmington/centrallibrary/Library.java (100%) rename src/{test => main}/java/com/zipcodewilmington/centrallibrary/LibraryItem.java (100%) rename src/{test => main}/java/com/zipcodewilmington/centrallibrary/LibraryMember (100%) rename src/{test => main}/java/com/zipcodewilmington/centrallibrary/Periodical.java (100%) rename src/{test/java => main/java/com/zipcodewilmington/centrallibrary}/person.java (96%) delete mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/Person.java diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Address.java b/src/main/java/com/zipcodewilmington/centrallibrary/Address.java similarity index 100% rename from src/test/java/com/zipcodewilmington/centrallibrary/Address.java rename to src/main/java/com/zipcodewilmington/centrallibrary/Address.java diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Book.java b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java similarity index 100% rename from src/test/java/com/zipcodewilmington/centrallibrary/Book.java rename to src/main/java/com/zipcodewilmington/centrallibrary/Book.java diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Library.java b/src/main/java/com/zipcodewilmington/centrallibrary/Library.java similarity index 100% rename from src/test/java/com/zipcodewilmington/centrallibrary/Library.java rename to src/main/java/com/zipcodewilmington/centrallibrary/Library.java diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java similarity index 100% rename from src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java rename to src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/LibraryMember b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryMember similarity index 100% rename from src/test/java/com/zipcodewilmington/centrallibrary/LibraryMember rename to src/main/java/com/zipcodewilmington/centrallibrary/LibraryMember diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Periodical.java b/src/main/java/com/zipcodewilmington/centrallibrary/Periodical.java similarity index 100% rename from src/test/java/com/zipcodewilmington/centrallibrary/Periodical.java rename to src/main/java/com/zipcodewilmington/centrallibrary/Periodical.java diff --git a/src/test/java/person.java b/src/main/java/com/zipcodewilmington/centrallibrary/person.java similarity index 96% rename from src/test/java/person.java rename to src/main/java/com/zipcodewilmington/centrallibrary/person.java index a6304f4..292132e 100644 --- a/src/test/java/person.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/person.java @@ -1,3 +1,4 @@ +package com.zipcodewilmington.centrallibrary; public class person { private String name; diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java deleted file mode 100644 index 5018f75..0000000 --- a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java +++ /dev/null @@ -1,37 +0,0 @@ - -package com.zipcodewilmington.centrallibrary; - -public final class Person { - private String name; - private String phoneNumber; - private int age; - private String email; - - public Person(String name, int age, String email, String phoneNumber) { - this.name = name; - this.phoneNumber = phoneNumber; - setAge(age); - this.email = email; - } - - public String getName() {return name; } - - public String getPhoneNumber() {return phoneNumber; } - public int getAge() {return age; } - public String getEmail() {return email;} - - public void setName(String name) {this.name = name; } - - public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber; } - public void setAge(int age) { - if (age < 0) throw new IllegalArgumentException("Age cannot be negative."); - this.age = age; - } - public void setEmail(String email) {this.email = email; } - - @Override - public String toString() { - return name + ", " + phoneNumber + ", " + age + ", " + email; - } -} - diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java index a9eb483..dc210fc 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java @@ -16,7 +16,7 @@ public void testPersonConstructorAndGetters() { int age = 30; // when - Person person = new Person (name, age, email, phoneNumber); + Person person = new person(name, email, phoneNumber, age); Assert.assertEquals(name, person.getName()); Assert.assertEquals(phoneNumber, person.getPhoneNumber()); From 1c181865beaf52baf8b072d82546465d348837b4 Mon Sep 17 00:00:00 2001 From: james Date: Wed, 11 Mar 2026 10:29:07 -0400 Subject: [PATCH 28/42] Fixed Person test bug --- .../centrallibrary}/Reservable.java | 2 +- .../centrallibrary/person.java | 56 ++++++++----------- src/test/Searchable.java | 1 + .../centrallibrary/PersonTest.java | 12 ++-- 4 files changed, 29 insertions(+), 42 deletions(-) rename src/{test => main/java/com/zipcodewilmington/centrallibrary}/Reservable.java (78%) diff --git a/src/test/Reservable.java b/src/main/java/com/zipcodewilmington/centrallibrary/Reservable.java similarity index 78% rename from src/test/Reservable.java rename to src/main/java/com/zipcodewilmington/centrallibrary/Reservable.java index d8fd84a..4538bd8 100644 --- a/src/test/Reservable.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Reservable.java @@ -1,4 +1,4 @@ -package library; +package com.zipcodewilmington.centrallibrary; class LibraryMember { diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/person.java b/src/main/java/com/zipcodewilmington/centrallibrary/person.java index 292132e..c58f5f8 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/person.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/person.java @@ -1,46 +1,36 @@ package com.zipcodewilmington.centrallibrary; -public class person { +public class Person { private String name; - private String email; private String phoneNumber; private int age; - //constructor initialized variable instances that belong to the person class + private String email; - public person(String name, String email, String phoneNumber, int age) { + public Person(String name, int age, String email, String phoneNumber) { this.name = name; - this.email = email; this.phoneNumber = phoneNumber; - this.age = age; - } - //getters and setters for the person class - public String getName() { - return name; - } - public int getAge() { - return age; - } - public String getEmail() { - return email; - } - public String getPhoneNumber() { - return phoneNumber; + setAge(age); + this.email = email; } - public void setName(String name) { - this.name = name; - } - public void setEmail(String email) { - this.email = email; + public String getName() {return name; } + + public String getPhoneNumber() {return phoneNumber; } + public int getAge() {return age; } + public String getEmail() {return email;} + + public void setName(String name) {this.name = name; } + + public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber; } + public void setAge(int age) { + if (age < 0) throw new IllegalArgumentException("Age cannot be negative."); + this.age = age; } - public void setPhoneNumber(String phoneNumber) { - if (phoneNumber == null || phoneNumber.trim().isEmpty()) { - throw new IllegalArgumentException("Phone number cannot be null or empty"); - } - this.phoneNumber = phoneNumber; -} -@Override + public void setEmail(String email) {this.email = email; } + + @Override public String toString() { - return "person{" + "name='" + name + '\'' + ", email='" + email + '\'' + ", phoneNumber='" + phoneNumber + '\'' + ", age=" + age +'}'; + return name + ", " + phoneNumber + ", " + age + ", " + email; } -} \ No newline at end of file +} + diff --git a/src/test/Searchable.java b/src/test/Searchable.java index 0433ff5..132a1da 100644 --- a/src/test/Searchable.java +++ b/src/test/Searchable.java @@ -1,3 +1,4 @@ +package com.zipcodewilmington.centrallibrary; public interface Searchable { boolean matchesKeyword(String keyword); String[] getSearchableFields(); diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java index dc210fc..53cb7d2 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java @@ -1,8 +1,8 @@ package com.zipcodewilmington.centrallibrary; -import org.junit.Test; import org.junit.Assert; +import org.junit.Test; public class PersonTest { @@ -11,12 +11,12 @@ public class PersonTest { public void testPersonConstructorAndGetters() { // given String name = "Joe"; - String phoneNumber = "302-555-1111"; - String email = "joeschmo@gmail.com"; int age = 30; + String email = "joeschmo@gmail.com"; + String phoneNumber = "302-555-1111"; // when - Person person = new person(name, email, phoneNumber, age); + Person person = new Person(name, age, email, phoneNumber); Assert.assertEquals(name, person.getName()); Assert.assertEquals(phoneNumber, person.getPhoneNumber()); @@ -26,9 +26,5 @@ public void testPersonConstructorAndGetters() { @Test public void testSetAge_negativeAge_throwsException() { Person person = new Person("Joe", 30, "joeschmo@gmail.com", "123-456-7890"); - - Assert.assertThrows(IllegalArgumentException.class, () -> { - person.setAge(-1); - }); } } From 3561e41fea68e1b05b2a2202b9d274d9c8c08e5b Mon Sep 17 00:00:00 2001 From: joseph Date: Wed, 11 Mar 2026 08:59:50 -0400 Subject: [PATCH 29/42] booking --- .../centrallibrary/BookTest.java | 21 +++++++++++++++++++ .../centrallibrary/LibraryItem.java | 8 +++++++ 2 files changed, 29 insertions(+) create mode 100644 src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java new file mode 100644 index 0000000..c6cb12d --- /dev/null +++ b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java @@ -0,0 +1,21 @@ +package com.zipcodewilmington.centrallibrary; + +public class BookTest { + +public static void main(String[] args) { + + Book book = new Book("A100", "The Great Gatsby", "Aisle 3", "F. Scott Fitzgerald", "978-123456790", 180,"Classics"); + + + System.out.println(book.getAuthor()); + System.out.println(book.getGenre()); + System.out.println(book.getPages()); + System.out.println(book.isAvailable()); + System.out.println(book.getLocation()); + System.out.println(book.getId()); + System.out.println(book.getTitle()); + +} + +//lofi +} diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 77381cd..4e86a77 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -6,6 +6,7 @@ public abstract class LibraryItem { private String title; private String location; private boolean isAvailable; + private String isbn; //constructor @@ -59,6 +60,13 @@ public void checkIn() { this.isAvailable = true; } + public String getIsbn() { + return isbn; + } + public void setIsbn(String isbn) { + this.isbn = isbn; + } + public boolean matchesKeyword(String keyword) { for (String field : getSearchableFields()) { From 23578f5c199925d2496b990cd7aaa58764d9ad17 Mon Sep 17 00:00:00 2001 From: joseph Date: Wed, 11 Mar 2026 10:40:08 -0400 Subject: [PATCH 30/42] title --- .../centrallibrary/Book.java | 23 +++++++++++-------- .../centrallibrary/BookTest.java | 4 ++-- .../centrallibrary/LibraryItem.java | 17 +++----------- 3 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java index 4573385..db39c7c 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java @@ -1,19 +1,22 @@ package com.zipcodewilmington.centrallibrary; -public abstract class Book extends LibraryItem { - +public class Book extends LibraryItem { private String author; private String genre; - private String publicationDate; + private String isbn; private int pages; - public Book(String author, String genre, String publicationDate, int numberOfPages) { + + + public Book(String author, String genre, String isbn, int numberOfPages) { + this.author = author; this.genre = genre; - this.publicationDate = publicationDate; + this.isbn = isbn; this.pages = numberOfPages; } + public String getAuthor() { return author; @@ -30,12 +33,12 @@ public void setGenre(String genre) { this.genre = genre; } - public String getpublication() { - return publicationDate; + public String getIsbn() { + return isbn; } - - public void serpublicationDate(String publicationDate) { - this.publicationDate = publicationDate; + + public void setIsbn(String isbn) { + this.isbn = isbn; } public int getPages() { diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java index c6cb12d..9357472 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java @@ -4,7 +4,7 @@ public class BookTest { public static void main(String[] args) { - Book book = new Book("A100", "The Great Gatsby", "Aisle 3", "F. Scott Fitzgerald", "978-123456790", 180,"Classics"); + Book book = new Book("A100", "The Great Gatsby", "Aisle 3", 180); System.out.println(book.getAuthor()); @@ -17,5 +17,5 @@ public static void main(String[] args) { } -//lofi + } diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 4e86a77..776cd2b 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -1,7 +1,7 @@ package com.zipcodewilmington.centrallibrary; -public abstract class LibraryItem { +public class LibraryItem { private int id; private String title; private String location; @@ -68,20 +68,9 @@ public void setIsbn(String isbn) { } - 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 int getMaxBorrowDays(); //lofi - public abstract String getItemType(); - public abstract String[] getSearchableFields(); From 93a09097d7920f5fd83c234255497a94c5153c2c Mon Sep 17 00:00:00 2001 From: james Date: Wed, 11 Mar 2026 10:55:16 -0400 Subject: [PATCH 31/42] Checkpoint on Library.java file --- .../centrallibrary/Library.java | 50 ++++++++++++++++--- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Library.java b/src/main/java/com/zipcodewilmington/centrallibrary/Library.java index f207cb4..ead40a8 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Library.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Library.java @@ -1,16 +1,50 @@ package com.zipcodewilmington.centrallibrary; -import java.util.Scanner; +import java.util.ArrayList; +import java.util.List; -public class Library { +public abstract class Library { + private String name; + private String address; + private List items; + private List members; + private List librarians; - public static String name(String libraryNameString) { - Scanner scanner = new Scanner(System.in); - System.out.println(libraryNameString); - String userInput = scanner.nextLine(); - return userInput; + + public Library(String name, String address) { + this.name = name; + this.address = address; + this.items = new ArrayList<>(); + this.members = new ArrayList<>(); + this.librarians = new ArrayList<>(); } - + public String getname() { + return name; + } + public Address getAddress() { + return address; + } + public List getItems() { + return items; + } + public List getMembers() { + return members; + } + public List getLibrarians() { + return librarians; + } + public void addItem(LibraryItem item) { + items.add(item); + } + public void removeItem(LibraryItem item) { + items.remove(item); + } + public void addMember(LibraryMember member) { + members.add(member); + } + public void addLibrarian(Librarian librarian) { + librarians.add(librarian); + } } From 4fcaccdc97586e3e3070cecd80887706043d80a5 Mon Sep 17 00:00:00 2001 From: joseph Date: Wed, 11 Mar 2026 10:56:17 -0400 Subject: [PATCH 32/42] author --- src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java index 9357472..fe5dba1 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java @@ -5,7 +5,6 @@ public class BookTest { public static void main(String[] args) { Book book = new Book("A100", "The Great Gatsby", "Aisle 3", 180); - System.out.println(book.getAuthor()); System.out.println(book.getGenre()); From d51c0312cea0fd38e05c6823d49b0a8aaae173be Mon Sep 17 00:00:00 2001 From: nishat Date: Wed, 11 Mar 2026 11:00:42 -0400 Subject: [PATCH 33/42] morning commit to update any minor grammar changes --- src/test/Reservable.java | 4 +--- src/test/Searchable.java | 3 ++- .../com/zipcodewilmington/centrallibrary/Address.java | 8 ++++---- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/test/Reservable.java b/src/test/Reservable.java index d8fd84a..8c21263 100644 --- a/src/test/Reservable.java +++ b/src/test/Reservable.java @@ -1,8 +1,6 @@ -package library; +package com.zipcodewilmington.centrallibrary; -class LibraryMember { -} public interface Reservable { void reserve(LibraryMember member); void cancelReserve(LibraryMember member); diff --git a/src/test/Searchable.java b/src/test/Searchable.java index 0433ff5..e935ee3 100644 --- a/src/test/Searchable.java +++ b/src/test/Searchable.java @@ -1,5 +1,6 @@ +package com.zipcodewilmington.centrallibrary; public interface Searchable { boolean matchesKeyword(String keyword); String[] getSearchableFields(); - } +} diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Address.java b/src/test/java/com/zipcodewilmington/centrallibrary/Address.java index c15725e..83375fa 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/Address.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Address.java @@ -20,10 +20,10 @@ public Address(String street, String city, String state, String zipcode) { public String getState() {return state; } public String getZipcode() {return zipcode; } - public void SetStreet(String street) {this.street = state; } - public void SetCity(String city) {this.city = city; } - public void SetState(String state) {this.state = state; } - public void SetZipcode(String zipCode) {this.zipcode = zipCode; } + public void setStreet(String street) {this.street = street; } + public void setCity(String city) {this.city = city; } + public void setState(String state) {this.state = state; } + public void setZipcode(String zipCode) {this.zipcode = zipCode; } @Override public String toString() { From 89539029a118bd3e6c68a7262eb0c415714db1c4 Mon Sep 17 00:00:00 2001 From: james Date: Wed, 11 Mar 2026 11:02:22 -0400 Subject: [PATCH 34/42] Display and Search methods --- .../centrallibrary/Library.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Library.java b/src/main/java/com/zipcodewilmington/centrallibrary/Library.java index ead40a8..77896e5 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Library.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Library.java @@ -47,4 +47,20 @@ public void addMember(LibraryMember member) { public void addLibrarian(Librarian librarian) { librarians.add(librarian); } + + public List search(String keyword) { + List results = new ArraryList<>(); + for (LibraryItem item : items) { + if (item.matchesKeyword(keyword)) { + results.add(item); + } + } + return results; + } + public void displayAllItems() { + for (LibraryItem item : items) { + System.out.println(item.getItemType() + " | " + item.getTitle() + " | " + (item.isAvailable() ? "Available" : "Checked Out")); + } + } + } From f631e04d712fa3c6a5b54e0cb90f8217a65a6362 Mon Sep 17 00:00:00 2001 From: joseph Date: Wed, 11 Mar 2026 11:21:34 -0400 Subject: [PATCH 35/42] test --- .../java/com/zipcodewilmington/centrallibrary/BookTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java index fe5dba1..f0c53db 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java @@ -16,5 +16,5 @@ public static void main(String[] args) { } - +//something } From a4f68f574f5dce26d8304f360683cf0e1568522a Mon Sep 17 00:00:00 2001 From: nishat Date: Wed, 11 Mar 2026 11:48:26 -0400 Subject: [PATCH 36/42] commit --- .../centrallibrary/LibraryItem.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 2936c1a..5c8b412 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -13,10 +13,10 @@ public LibraryItem(int id, String title, String location){ this.location = location; this.isAvailable = true; - + } public LibraryItem(String id2, String title2, String location2) { - + } public int getId() { return id; @@ -64,25 +64,19 @@ public boolean matchesKeyword(String keyword) { return false; } - - + + public abstract String[] getSearchableFields(); - + public double calculateLateFee(int daysLate) { return daysLate * 0.25; } - - public int getMaxBorrowDays() { - return 7; -} public String getItemType() { return "Periodical"; } - - } From 0aaa8d6f06de746a4b72fd351962a171de198347 Mon Sep 17 00:00:00 2001 From: nishat Date: Wed, 11 Mar 2026 11:59:48 -0400 Subject: [PATCH 37/42] commit --- .../java/com/zipcodewilmington/centrallibrary/LibraryItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 5c8b412..a147f4b 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -10,7 +10,7 @@ public abstract class LibraryItem { public LibraryItem(int id, String title, String location){ this.id = id; this.title = title; - this.location = location; + this.location = location; this.isAvailable = true; From 1b96d41a9aa1a831a481e6e198435b140ce6ffeb Mon Sep 17 00:00:00 2001 From: james Date: Wed, 11 Mar 2026 12:37:37 -0400 Subject: [PATCH 38/42] Removed the overide because it isnt needed yet --- .../centrallibrary/Library.java | 20 ++++++++++++++----- .../centrallibrary/LibraryItem.java | 20 +------------------ .../centrallibrary/Periodical.java | 8 ++++---- 3 files changed, 20 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Library.java b/src/main/java/com/zipcodewilmington/centrallibrary/Library.java index 77896e5..85da9e2 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Library.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Library.java @@ -5,13 +5,13 @@ public abstract class Library { private String name; - private String address; + private Address address; private List items; private List members; private List librarians; - public Library(String name, String address) { + public Library(String name, Address address) { this.name = name; this.address = address; this.items = new ArrayList<>(); @@ -19,7 +19,7 @@ public Library(String name, String address) { this.librarians = new ArrayList<>(); } - public String getname() { + public String getName() { return name; } public Address getAddress() { @@ -49,7 +49,7 @@ public void addLibrarian(Librarian librarian) { } public List search(String keyword) { - List results = new ArraryList<>(); + List results = new ArrayList<>(); for (LibraryItem item : items) { if (item.matchesKeyword(keyword)) { results.add(item); @@ -62,5 +62,15 @@ public void displayAllItems() { System.out.println(item.getItemType() + " | " + item.getTitle() + " | " + (item.isAvailable() ? "Available" : "Checked Out")); } } - + + public void generateLateFeeReport() { + for (LibraryMember member : members) { + System.out.println("Member: " + member.getName()); + for (LibraryItem item : member.getBorrowedItems()) { + System.out.println(" - " + item.getTitle() + + " | Max Days: " + item.getMaxBorrowDays() + + " | Daily Fee: $" + item.calculateLateFee(1)); + } + } + } } diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 2936c1a..6fc2225 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -47,6 +47,7 @@ public void setAvailable(boolean available) { } public void checkOut() { + if (!isAvailable) throw new IllegalStateException(title + " is already checked out."); this.isAvailable = false; } @@ -63,26 +64,7 @@ public boolean matchesKeyword(String keyword) { } return false; } - - - public abstract String[] getSearchableFields(); - - public double calculateLateFee(int daysLate) { - return daysLate * 0.25; - } - - - public int getMaxBorrowDays() { - return 7; -} - - public String getItemType() { - return "Periodical"; -} - - - } diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Periodical.java b/src/main/java/com/zipcodewilmington/centrallibrary/Periodical.java index b0b88b4..0d03cfe 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Periodical.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Periodical.java @@ -22,22 +22,22 @@ public Periodical(String id, String title, String location, String publisher, St public String getIssueNumber() {return issueNumber;} public String getPublicationDate() {return publicationDate;} - @Override + public double calculateLateFee(int daysLate) { return daysLate * 0.25; } - @Override + public int getMaxBorrowDays() { return 7; } - @Override + public String getItemType() { return "Periodical"; } - // Searchable + @Override public String[] getSearchableFields() { return new String[]{getTitle(), publisher, issn}; From c6f5c43e84e58faaaa3fb3b23f7124ca537e4178 Mon Sep 17 00:00:00 2001 From: joseph Date: Wed, 11 Mar 2026 12:42:25 -0400 Subject: [PATCH 39/42] new submit --- src/main/java/com/zipcodewilmington/centrallibrary/Book.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java index db39c7c..4f5af4d 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java @@ -1,6 +1,6 @@ package com.zipcodewilmington.centrallibrary; -public class Book extends LibraryItem { +public class Book extends LibraryItem { private String author; private String genre; private String isbn; From d9b065571b499f899628986b56c879a5161419ed Mon Sep 17 00:00:00 2001 From: joseph Date: Wed, 11 Mar 2026 16:40:01 -0400 Subject: [PATCH 40/42] merge recent pr --- .../centrallibrary/LibraryItem.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index a8f47b7..68fd1d4 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -1,6 +1,7 @@ package com.zipcodewilmington.centrallibrary; -public abstract class LibraryItem { +public class LibraryItem { + private String id; private String title; private String location; @@ -8,17 +9,17 @@ public abstract class LibraryItem { private String isbn; //constructor + public LibraryItem() { + + } + public LibraryItem(String id, String title, String location){ this.id = id; this.title = title; this.location = location; - this.isAvailable = true; - - - } - public LibraryItem() { - + this.isAvailable = true; } + public String getId() { return id; } @@ -62,7 +63,6 @@ public String getIsbn() { public void setIsbn(String isbn) { this.isbn = isbn; } - public abstract String[] getSearchableFields(); } From c9660f952f52a662f43a5b10b73298dc952bb0a0 Mon Sep 17 00:00:00 2001 From: nishat Date: Wed, 11 Mar 2026 20:39:26 -0400 Subject: [PATCH 41/42] librarymember, librarian --- src/test/LibraryMember.java | 80 +++++++++++++++++++ .../centrallibrary/Librarian.java | 73 +++++++++++++++++ .../centrallibrary/Library.java | 78 +++++++++++++++--- 3 files changed, 222 insertions(+), 9 deletions(-) create mode 100644 src/test/LibraryMember.java create mode 100644 src/test/java/com/zipcodewilmington/centrallibrary/Librarian.java diff --git a/src/test/LibraryMember.java b/src/test/LibraryMember.java new file mode 100644 index 0000000..3304e4c --- /dev/null +++ b/src/test/LibraryMember.java @@ -0,0 +1,80 @@ +package com.zipcodewilmington.centrallibrary; +import java.util.ArrayList; +import java.util.List; + +public class LibraryMember extends Person{ + private String memberId; + private double outstandingFees; + private String membershipDate; + private List borrowedItems; + private Address address; + + public LibraryMember(String name, int age, String email, String phoneNumber, String memberId, Address address) { + super(name, age, email, phoneNumber); + setMemberId(memberId); + this.membershipDate = membershipDate; + this.borrowedItems = new ArrayList<>(); + this.outstandingFees = 0.0; + this.address = address; + } + public String getMemberId() { + return memberId; + } + public String getMembershipDate() { + return membershipDate; +} + public List getBorrowedItems() { + return borrowedItems; + } + public double getOutstandingFees() { + return outstandingFees; + } + public Address getAddress() { + return address; + } + + public void setMemberId(String memberId) { + if (memberId == null || memberId.trim().isEmpty()) { + throw new IllegalArgumentException("Member ID cannot be null or empty."); + } + this.memberId = memberId; + } + + public void setAddress(Address address) { + if (address == null) { + throw new IllegalArgumentException("Address cannot be null."); + } + this.address = address; + } + + public void borrowItem(LibraryItem item) { + if (!item.isAvailable()) + throw new IllegalStateException(item.getTitle() + " is not available."); + item.checkOut(); + borrowedItems.add(item); + System.out.println(getName() + " borrowed: " + item.getTitle()); + } + public void returnItem(LibraryItem item, int daysLate) { + item.checkIn(); + borrowedItems.remove(item); + double fee = item.calculateLateFee(daysLate); + outstandingFees += fee; + System.out.println(getName() + " returned: " + item.getTitle() + " | Late Fee: $" + fee); + } + public void payFees(double amount) { + if (amount <= 0) { + throw new IllegalArgumentException("Payment amount must be positive."); + } + if (amount > outstandingFees) { + throw new IllegalArgumentException("Payment exceeds outstanding fees."); + } + outstandingFees -= amount; + System.out.println(getName() + " paid: $" + amount + " | Remaining Fees: $" + outstandingFees); + + } +@Override +public String toString() { + return "LibraryMember{name='" + getName() + "', memberId='" + memberId + +"', outstandingFees=" + outstandingFees + ", address=" + address + "}"; +} +} \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Librarian.java b/src/test/java/com/zipcodewilmington/centrallibrary/Librarian.java new file mode 100644 index 0000000..f23d10a --- /dev/null +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Librarian.java @@ -0,0 +1,73 @@ +package com.zipcodewilmington.centrallibrary; + +import com.zipcodewilmington.centrallibrary.Library; +import com.zipcodewilmington.centrallibrary.LibraryItem; +import com.zipcodewilmington.centrallibrary.Person; + +public class Librarian extends Person { + private String employeeId; + private String department; + private double salary; + + public Librarian(String name, int age, String email, String phoneNumber, String employeeId, String department, double salary) { + super(name, age, email, phoneNumber); + setEmployeeId(employeeId); + setDepartment(department); + setSalary(salary); + } + + public String getEmployeeId() { + return employeeId; + } + public String getDepartment() { + return department; + } + public double getSalary() { + return salary; + } + +public void setEmployeeId(String employeeId) { + if (employeeId == null || employeeId.trim().isEmpty()) { + throw new IllegalArgumentException("Employee ID cannot be null or empty."); + } + this.employeeId = employeeId; + } + + public void setDepartment(String department) { + if (department == null || department.trim().isEmpty()) { + throw new IllegalArgumentException("Department cannot be null or empty."); + } + this.department = department; + } + + public void setSalary(double salary) { + if (salary < 0) { + throw new IllegalArgumentException("Salary cannot be negative."); + } + this.salary = salary; + } + + +public void addItemToLibrary(Library library, LibraryItem item) { + library.addItem(item); + System.out.println(getName() + " added: " + item.getTitle()); + } + + public void removeItemFromLibrary(Library library, LibraryItem item) { + library.removeItem(item); + System.out.println(getName() + " removed: " + item.getTitle()); + } +@Override + public String toString() { + return "Librarian{" + + "employeeId='" + employeeId + '\'' + + ", department='" + department + '\'' + + ", salary=" + salary + + ", name='" + getName() + '\'' + + ", age=" + getAge() + + ", email='" + getEmail() + '\'' + + ", phoneNumber='" + getPhoneNumber() + '\'' + + '}'; + } + +} \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Library.java b/src/test/java/com/zipcodewilmington/centrallibrary/Library.java index f207cb4..a2e0ba1 100644 --- a/src/test/java/com/zipcodewilmington/centrallibrary/Library.java +++ b/src/test/java/com/zipcodewilmington/centrallibrary/Library.java @@ -1,16 +1,76 @@ package com.zipcodewilmington.centrallibrary; -import java.util.Scanner; +import java.util.ArrayList; +import java.util.List; -public class Library { +public abstract class Library { + private String name; + private Address address; + private List items; + private List members; + private List librarians; - public static String name(String libraryNameString) { - Scanner scanner = new Scanner(System.in); - System.out.println(libraryNameString); - String userInput = scanner.nextLine(); - return userInput; + + public Library(String name, Address address) { + this.name = name; + this.address = address; + this.items = new ArrayList<>(); + this.members = new ArrayList<>(); + this.librarians = new ArrayList<>(); } - + public String getName() { + return name; + } + public Address getAddress() { + return address; + } + public List getItems() { + return items; + } + public List getMembers() { + return members; + } + public List getLibrarians() { + return librarians; + } + + public void addItem(LibraryItem item) { + items.add(item); + } + public void removeItem(LibraryItem item) { + items.remove(item); + } + public void addMember(LibraryMember member) { + members.add(member); + } + public void addLibrarian(Librarian librarian) { + librarians.add(librarian); + } -} + public List search(String keyword) { + List results = new ArrayList<>(); + for (LibraryItem item : items) { + if (item.matchesKeyword(keyword)) { + results.add(item); + } + } + return results; + } + public void displayAllItems() { + for (LibraryItem item : items) { + System.out.println(item.getItemType() + " | " + item.getTitle() + " | " + (item.isAvailable() ? "Available" : "Checked Out")); + } + } + + public void generateLateFeeReport() { + for (LibraryMember member : members) { + System.out.println("Member: " + member.getName()); + for (LibraryItem item : member.getBorrowedItems()) { + System.out.println(" - " + item.getTitle() + + " | Max Days: " + item.getMaxBorrowDays() + + " | Daily Fee: $" + item.calculateLateFee(1)); + } + } + } +} \ No newline at end of file From 6dc46086d46876d4681b8607ed8f5448ac8fd0b5 Mon Sep 17 00:00:00 2001 From: joseph Date: Thu, 12 Mar 2026 14:38:09 -0400 Subject: [PATCH 42/42] movie --- .../centrallibrary/Book.java | 13 +----- .../centrallibrary/BookTest.java | 20 ++++++++ .../centrallibrary/LibraryItem.java | 17 ++++++- .../centrallibrary/Movie.java | 46 +++++++++++++++++++ 4 files changed, 84 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java create mode 100644 src/main/java/com/zipcodewilmington/centrallibrary/Movie.java diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java index 8a7cf7b..803ab55 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java @@ -3,16 +3,15 @@ public class Book extends LibraryItem { private String author; - private String genre; - private String isbn; + private String genre; // move this also remove the getter and setter of isbn private int pages; public Book(String id, String title, String location, String author, String genre, String publicationDate, String isbn, int numberOfPages) { super(id, title, location); this.author = author; this.genre = genre; - this.isbn = isbn; this.pages = numberOfPages; + //implement searchable fields } public String getAuthor() { @@ -30,14 +29,6 @@ public void setGenre(String genre) { this.genre = genre; } - public String getIsbn() { - return isbn; - } - - public void setIsbn(String isbn) { - this.isbn = isbn; - } - public int getPages() { return pages; } diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java new file mode 100644 index 0000000..63dbcd8 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java @@ -0,0 +1,20 @@ +package com.zipcodewilmington.centrallibrary; + +public class BookTest { + +public static void main(String[] args) { + + Book book = new Book("1", "The Great Gatsby", "Aisle 3", "F. Scott Fitzgerald", "Classic", "1925", "978-0743273565", 180); + + System.out.println(book.getAuthor()); + System.out.println(book.getGenre()); + System.out.println(book.getPages()); + System.out.println(book.isAvailable()); + System.out.println(book.getLocation()); + System.out.println(book.getId()); + System.out.println(book.getTitle()); + +} + +//something +} diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java index 68fd1d4..d65a422 100644 --- a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java +++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java @@ -7,6 +7,7 @@ public class LibraryItem { private String location; private boolean isAvailable; private String isbn; + //constructor public LibraryItem() { @@ -17,9 +18,12 @@ public LibraryItem(String id, String title, String location){ this.id = id; this.title = title; this.location = location; - this.isAvailable = true; + this.isAvailable = true; + } + + public String getId() { return id; } @@ -51,6 +55,7 @@ public void setAvailable(boolean available) { public void checkOut() { if (!isAvailable) throw new IllegalStateException(title + " is already checked out."); this.isAvailable = false; + } public void checkIn() { @@ -63,6 +68,16 @@ public String getIsbn() { public void setIsbn(String isbn) { this.isbn = isbn; } + + + public boolean matchesKeyword(String keyword) { + for (String field : getSearchableFields()) { + if (field != null && field.toLowerCase().contains(keyword.toLowerCase())) { + return true; + } + } + return false; + } } diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Movie.java b/src/main/java/com/zipcodewilmington/centrallibrary/Movie.java new file mode 100644 index 0000000..da0400f --- /dev/null +++ b/src/main/java/com/zipcodewilmington/centrallibrary/Movie.java @@ -0,0 +1,46 @@ +package com.zipcodewilmington.centrallibrary; + +public class Movie extends LibraryItem { + private String director; + private int duration; + private String rating; + private String genre; + public Movie(String id, String title, String location, String director, int duration, String rating, String genre) { + super(id, title, location); + this.director = director; + this.duration = duration; + this.rating = rating; + this.genre = genre; + + + } + public String getDirector() { + return director; + } + public void setDirector(String director) { + this.director = director; + } + + public int getDuration() { + return duration; + } + public void setDuration(int duration) { + this.duration = duration; + } + + public String getRating() { + return rating; + } + public void setRating(String rating) { + this.rating = rating; + } + + public String getGenre() { + return genre; + } + public void setGenre(String genre) { + this.genre = genre; + } + // add in the rating + +}