import java.util.
ArrayList;
import java.util.List;
public class GenericCatalog<T extends LibraryItem> {
private List<T> catalog = new ArrayList<>();
// Method to add a new library item
public void addItem(T item) {
catalog.add(item);
System.out.println("Item added: " + item.getTitle());
}
// Method to remove a library item by ID
public void removeItem(String itemID) {
boolean found = false;
for (T item : catalog) {
if (item.getItemID().equals(itemID)) {
catalog.remove(item);
System.out.println("Item removed: " + item.getTitle());
found = true;
break;
}
}
if (!found) {
System.out.println("Error: Item with ID " + itemID + " not found.");
}
}
// Method to view all items in the catalog
public void viewCatalog() {
if (catalog.isEmpty()) {
System.out.println("The catalog is empty.");
} else {
for (T item : catalog) {
item.displayDetails();
}
}
}
}
import java.util.Scanner;
public class LibraryCatalogApp {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
GenericCatalog<LibraryItem> catalog = new GenericCatalog<>();
// Menu loop
while (true) {
System.out.println("\nLibrary Catalog Menu:");
System.out.println("1. Add Item");
System.out.println("2. Remove Item");
System.out.println("3. View Catalog");
System.out.println("4. Exit");
System.out.print("Choose an option: ");
int choice = scanner.nextInt();
scanner.nextLine(); // Consume newline
switch (choice) {
case 1:
// Add a new item
System.out.print("Enter item type (Book/DVD/Magazine): ");
String type = scanner.nextLine();
System.out.print("Enter title: ");
String title = scanner.nextLine();
System.out.print("Enter author: ");
String author = scanner.nextLine();
System.out.print("Enter item ID: ");
String itemID = scanner.nextLine();
LibraryItem newItem = new LibraryItem(title, author, itemID);
catalog.addItem(newItem);
break;
case 2:
// Remove an item
System.out.print("Enter item ID to remove: ");
String removeID = scanner.nextLine();
catalog.removeItem(removeID);
break;
case 3:
// View catalog
catalog.viewCatalog();
break;
case 4:
// Exit
System.out.println("Exiting the catalog.");
scanner.close();
return;
default:
System.out.println("Invalid choice. Please try again.");
}
}
}
}
public class LibraryItem<T> {
private String title;
private String author;
private String itemID;
// Constructor
public LibraryItem(String title, String author, String itemID) {
this.title = title;
this.author = author;
this.itemID = itemID;
}
// Getters and Setters
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public String getItemID() {
return itemID;
}
// Method to display item details
public void displayDetails() {
System.out.println("Title: " + title + ", Author: " + author + ", Item ID: " + itemID);
}
}