vault backup: 2024-03-08 10:55:57
This commit is contained in:
@@ -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 );
|
||||
|
Reference in New Issue
Block a user