vault backup: 2024-03-08 10:55:57

This commit is contained in:
2024-03-08 10:55:57 +00:00
parent 28ea6a0a9b
commit 68fa81d02f
18 changed files with 662 additions and 81 deletions

View File

@@ -7,10 +7,13 @@
*/
// Import all required libraries. Not using .* as it is not good practice due to potential conflicts.
import java.util.List;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Random;
import java.util.Map;
import java.util.HashMap;
import java.io.File;
import java.io.IOException;
import java.awt.FileDialog;
@@ -19,40 +22,65 @@ import java.io.PrintWriter;
public class Library
{
private ArrayList<LibraryItem> itemList; // Initialise an ArrayList of name itemList to store Library Items
private ArrayList<LibraryUser> userList; // Initialise an ArrayList of name userList to store Library Users
// private List<LibraryItem> itemList; // Initialise an ArrayList of name itemList to store Library Items
// private List<LibraryUser> userList; // Initialise an ArrayList of name userList to store Library Users
private HashSet<String> uuidSet; // Initialise a Hash Set of name uuidSet ( unique user identifier ) to store unique user IDs for efficient O(1) searching
private Map<String, LibraryUser> customerMap;
private Map<String, LibraryItem> itemsMap;
private Map<String, LibraryReservation> libraryReservationMap;
/*
* Constructor for objects of class Library
*/
public Library()
{
itemList = new ArrayList<LibraryItem>();
userList = new ArrayList<LibraryUser>();
// itemList = new ArrayList<LibraryItem>();
// userList = new ArrayList<LibraryUser>();
uuidSet = new HashSet<String>();
customerMap = new HashMap<String, LibraryUser>();
itemsMap = new HashMap<String, LibraryItem>();
libraryReservationMap = new HashMap<String, LibraryReservation>();
}
/*
* Appends a LibraryItem to the itemList.
* Inserts object value item alongside key of @itemCode into @itemsMap.
*/
public void storeItem( LibraryItem item )
{
itemList.add( item );
// itemList.add( item );
itemsMap.put( item.getItemCode(), item );
}
/*
* Appends a LibraryUser to the userList.
* Inserts object value user alongside key of @userID into @customerMap.
* If the userID is set to unknown, it will call @generateUserID.
*/
public void storeUser( LibraryUser user )
{
userList.add( user );
// userList.add( user );
System.out.println( "User Storing: " + user.getFirstName() );
if ( user.getUserID().equals( "unknown" ) )
{
user.setUserID( generateUserID( "AB-", 6 ) );
}
customerMap.put( user.getUserID(), user );
}
/*
* Inserts object value reservation alongside key of @reservationNo into @libraryReservationMap.
*/
public void storeLibraryReservation( LibraryReservation reservation )
{
libraryReservationMap.put( reservation.getReservationNo(), reservation );
}
public void generateReservationNo()
{
if( libraryReservationMap.values() = null )
return "000001";
}
/*
* Returns a random unique user ID by specifying
* @prefix - arbitrary alphanumeric prefix
@@ -111,7 +139,8 @@ public class Library
FileDialog fileBox = new FileDialog( frame, "Save", FileDialog.SAVE ); // Initialise file dialog box to save written data.
fileBox.setVisible( true );
PrintWriter writer = new PrintWriter( new File( fileBox.getDirectory() + fileBox.getFile() ) );
for ( LibraryUser user : userList ){
// for ( LibraryUser user : userList ){
for ( LibraryUser user : customerMap.values() ) {
user.writeData( writer );
}
writer.close();
@@ -129,7 +158,7 @@ public class Library
public void printAll()
{
System.out.println("\n\nStart Detail Print");
for( LibraryItem item : itemList )
for( LibraryItem item : itemsMap.values() )
{
System.out.println("---------------");
item.printDetails();
@@ -215,6 +244,7 @@ public class Library
}
else if ( typeFlag.equals( "user" ) ) {
//Process User Data
System.out.println( "User: " + lineItem );
Scanner detailScanner = new Scanner ( lineItem ).useDelimiter(",");
LibraryUser user = new LibraryUser();
user.readData( detailScanner );