From 68fa81d02fad069aa0d215cfd211cf291735962c Mon Sep 17 00:00:00 2001 From: boris Date: Fri, 8 Mar 2024 10:55:57 +0000 Subject: [PATCH] vault backup: 2024-03-08 10:55:57 --- .obsidian/workspace.json | 31 ++- .../Week 8/Week 8 Database Systems.md | 54 +++- .../Project/Part 2/DateUtil.class | Bin 0 -> 3594 bytes .../Project/Part 2/DateUtil.ctxt | 26 ++ .../Project/Part 2/DateUtil.java | 263 ++++++++++++++++++ .../Project/Part 2/Library.class | Bin 5403 -> 6105 bytes .../Programming 2/Project/Part 2/Library.ctxt | 29 +- .../Programming 2/Project/Part 2/Library.java | 50 +++- .../Project/Part 2/LibraryReservation.class | Bin 0 -> 1657 bytes .../Project/Part 2/LibraryReservation.ctxt | 35 +++ .../Project/Part 2/LibraryReservation.java | 125 +++++++++ .../Project/Part 2/data/testuserwrite.txt | 8 +- .../Programming 2/Project/Part 2/nullnull | 4 + .../Project/Part 2/package.bluej | 118 +++++--- images/Pasted image 20240308101739.png | Bin 0 -> 20981 bytes images/Pasted image 20240308102031.png | Bin 0 -> 28303 bytes images/Pasted image 20240308103720.png | Bin 0 -> 21675 bytes images/Pasted image 20240308103937.png | Bin 0 -> 25430 bytes 18 files changed, 662 insertions(+), 81 deletions(-) create mode 100644 Semester 2/Programming 2/Project/Part 2/DateUtil.class create mode 100644 Semester 2/Programming 2/Project/Part 2/DateUtil.ctxt create mode 100644 Semester 2/Programming 2/Project/Part 2/DateUtil.java create mode 100644 Semester 2/Programming 2/Project/Part 2/LibraryReservation.class create mode 100644 Semester 2/Programming 2/Project/Part 2/LibraryReservation.ctxt create mode 100644 Semester 2/Programming 2/Project/Part 2/LibraryReservation.java create mode 100644 images/Pasted image 20240308101739.png create mode 100644 images/Pasted image 20240308102031.png create mode 100644 images/Pasted image 20240308103720.png create mode 100644 images/Pasted image 20240308103937.png diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index a7108f4..c7116c2 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -42,8 +42,19 @@ "file": "Semester 2/Database Systems/Booklet of Lecture Slides for Semester Two (2).pdf" } } + }, + { + "id": "bde983126ec4558f", + "type": "leaf", + "state": { + "type": "pdf", + "state": { + "file": "Semester 2/Database Systems/Exercise Booklet.pdf" + } + } } - ] + ], + "currentTab": 1 } ], "direction": "vertical" @@ -192,6 +203,15 @@ }, "active": "e96e468fb0a709e5", "lastOpenFiles": [ + "images/Pasted image 20240308103937.png", + "images/Pasted image 20240308103720.png", + "images/Pasted image 20240308102031.png", + "images/Pasted image 20240308101739.png", + "Semester 2/Programming 2/Project/Part 2/Library.java#", + "Semester 2/Database Systems/Exercise Booklet.pdf", + "Semester 2/Database Systems/Week 8/Week 8 Database Systems.md", + "Semester 2/Database Systems/Week 7/Week 7 Database Systems.md", + "Semester 2/Database Systems/Booklet of Lecture Slides for Semester Two (2).pdf", "images/Pasted image 20240305135229.png", "images/Pasted image 20240305135043.png", "images/Pasted image 20240305134944.png", @@ -199,8 +219,6 @@ "images/Pasted image 20240305134835.png", "images/Pasted image 20240305134734.png", "images/Pasted image 20240305134506.png", - "Semester 2/Database Systems/Booklet of Lecture Slides for Semester Two (2).pdf", - "Semester 2/Database Systems/Week 8/Week 8 Database Systems.md", "Semester 2/Programming 2/Project/Part 2/Book.java#", "Semester 2/Programming 2/Project/Part 2/Periodical.java#", "Semester 2/Programming 2/Project/Part 2/LibraryItem.java#", @@ -208,13 +226,6 @@ "Semester 2/Programming 2/Project/Part 2/CD.java#", "Semester 2/Programming 2/Project/Part 2/DVD.java#", "Semester 2/Programming 2/Project/Part 2/AudioVisual.java#", - "Semester 2/Programming 2/Project/Part 2/PrintedItem.java#", - "Semester 2/Programming 2/Project/Part 2/Library.java#", - "images/Pasted image 20240305131110.png", - "images/Pasted image 20240305130824.png", - "Semester 2/Database Systems/Week 7/Week 7 Database Systems.md", - "images/Pasted image 20240227171728.png", - "images/Pasted image 20240227171700.png", "Semester 2/Database Systems/Week 6/Week 6 Database Systems.md", "Semester 2/Computer Systems Internals & Linux/Week 6/Week 6 Computer Systems Internals.md", "Semester 2/Programming 2/Assessment 3 Revision/Parameter Passing WS3.md", diff --git a/Semester 2/Database Systems/Week 8/Week 8 Database Systems.md b/Semester 2/Database Systems/Week 8/Week 8 Database Systems.md index 9624bf6..b0012f4 100644 --- a/Semester 2/Database Systems/Week 8/Week 8 Database Systems.md +++ b/Semester 2/Database Systems/Week 8/Week 8 Database Systems.md @@ -55,7 +55,7 @@ Definition: Checkpoints are points of sync between database and log file. All bu - Checkpoint record to log file which contains identities of transactions active at time of checkpoint 2. Resume processing. -![](Pasted%20image%2020240305134734.png) +- ![](Pasted%20image%2020240305134734.png) ### Example 1 ( Immediate ) @@ -88,3 +88,55 @@ Definition: Checkpoints are points of sync between database and log file. All bu ## Example of Log Use ( Immediate ) ![](Pasted%20image%2020240305135229.png) + +# Shadow Paging + +Alternative technique for providing atomicity and durability. +DBMS maintains two page tables during the life of a transaction. +1. Current Page +2. Shadow Page Table + +**Transaction Start**: Two pages are the same +- Shadow page table is never changed, only used to restore database. +**Transaction Execution**: current page table records all updates to database +**Transaction End**: Current page table becomes shadow page table and all modified pages from database buffers written to secondary storage. +**Transaction Failure**: new pages ignored, shadow page table becomes current page table. + +# Tutorial + +1. State whether each of the following is true or false. If it is false then briefly explain why. + 1. True + 2. True + 3. True + 4. False: REDO / NO UNDO + 5. True +2. The DBMS maintains a log file containing transaction records that identify the start and end of transactions and the before and after images of the write operations. Consider the log files shown in Tables 32.1 and 32.2. For each one, explain what the DBMS recovery system would do, and why, if there was a failure at the time shown below each table and the DBMS was using: + 1. Deferred update protocol + 1. 32.1 Fail @10:24 + - Redo T1 as commit before failure. Ignore T2 and 3, active at point of failure. T4 not active at point of failure, Ignore. + 2. 32.2 Fail @9.21 + - Redo T2 and 4, since no commit occurs. T3 commits after the checkpoint, and anything before has no effect. + 1. Immediate update protocol + 1. 32.1 Fail @10.24 + - Undo T2 and 3, since they are active, and do not commit. T1 must be redone, and T4 is ignored, as it never started. + 2. 32.2 Fail @9:21 + - Undo T2 and 4, since they are active and do not commit. Redo T3, as it is active after the checkpoint. + +# Workshop + +1. ![](Pasted%20image%2020240308101739.png) +2. ![](Pasted%20image%2020240308102031.png) +3. ![](Pasted%20image%2020240308103720.png) +``` +SELECT SUM([UnitPrice]) AS TotalPrice +FROM [Products] +WHERE [SupplierID] = ( + SELECT [SupplierID] + FROM [Suppliers] + WHERE [Country] = 'UK' + ); + +``` + +4. ![](Pasted%20image%2020240308103937.png) + 1. \ No newline at end of file diff --git a/Semester 2/Programming 2/Project/Part 2/DateUtil.class b/Semester 2/Programming 2/Project/Part 2/DateUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..590e5258d0524e40cdb001a0e36b10b40d93ec2e GIT binary patch literal 3594 zcmZ`*>sK6S9e!qac4ycOgi8r5AqTkc?5qY@HhuF@=l28t4|!|t$5x;wL-83GMbQ9NyrdXDG#(aS%e-~6b@;}?(ddEc205Y~k=^UnMJF3<1z zU1t99-(S52;C`&6(1Y0;bi)>xiz#&AVR0#n$5ILoTn*(EbUY%qJ+bmN1SuGp)iEdT z^Exhx`+|-|4WCM(36BcRPwV(h3ZKR2G<-gVR?Mc*jxUJIV;a6F?w7^oaUt_1vHEg~ zPQM}^zbfRp>c-c^!6x8O;z&h=EB{K*tPeFV3qB(E& z2i8K+KW>-GMeF1(fx`-R7G0+xcE+T;%8h0Ryk^lj>6{& zSNPg+znPK8&pgv z@cUTM242KV3U*5;vU#>8)4-4LV*@|I5@*MTTqV~AUdAg1Ud2xhT*qq$eumc#OyPoo zH^k%nam>IZJ|vnx-#aqWyT~8w;}m~AnS5r1zf8CnhFWzp8h8`SOn)V9@1uKZg5r;S@N0Mkc3l#KLvAi8oRApkY1#X3cB&SIsnB}<1xg`R%CR_zg+nYzs zKi>)_*mPCTMVvXlop`#HjgWpijhlHwO>_)PQZxn=8f&bOCkssEfx-z{id8*vB*dv4 zjvT?lw8eDLZ;JS`mSc0GiNgz>li0`CZx6o};;0e*%T-FWu)MQ(oBI)P}^9yik+0(*;voZ zDjEjWp5J4CbedMhNn_W z`B_zDEG0%>#uy&K1^Af8B`omoF+3{cyg!UZ@&szm;{!O(NL#2USd7uiEKcAg{T#wM zoFbnpPSaNlVmE0rq2Y{%4{8`zxB~7a*$?1sMAmPqrc?MAf}57B(BnszutPo4b*}qt zZ#I5NT}La4N)IN|2?pI(c}%90RA@^lRbgWviErmr8VwkZeZUP z>`H4q$Ru8b@w>}V6=w-Ga#7l5Vd>^uX-&8b4c&DG_34BzY+qKDrJH|mzXH8k4GyWz z>h)XfI@rzilMLl4)bbU!6VI@^p5^E6b7`heYnctuaTb@$kY<+Y*3U5? zaX}_VWqpg)7+3sk;X5RhYbA;Ym@Sofp2mYX&-@PHaiTcSPCSM=OmL;i4Bms9+W$aP zZt_*EGl3$9U=|+=|ADSVQ@m9t4!&fbtIt%3P!^F$Eih7ARMt^+AMgC4R_84QXi~MD~+g7n(WG0*hDS7%= zYX41I4<|q!K0=%9amM^0nG_S?WB7PvbC!2uGu3qi2eRt*Z2UTR#H7-QGVG@i{XfXw zKe_uaTKe}b^a*NzLh`P2^+}jgI~Dbi=nYO1HpMi(=8%uP4p3Hl=~8dt?hT&g)KL=B zdN?1G5jQ&fxiVbONY;S8jrXh|*?8{?;_K*`T1IjWohxEy#yB*)#Mo8jK-eW4`v9+Z UvyA%KuKl=^iB>Q}nHUQH1An?Jvj6}9 literal 0 HcmV?d00001 diff --git a/Semester 2/Programming 2/Project/Part 2/DateUtil.ctxt b/Semester 2/Programming 2/Project/Part 2/DateUtil.ctxt new file mode 100644 index 0000000..4d9c2c3 --- /dev/null +++ b/Semester 2/Programming 2/Project/Part 2/DateUtil.ctxt @@ -0,0 +1,26 @@ +#BlueJ class context +comment0.params=date +comment0.target=java.lang.String\ convertDateToLongString(java.util.Date) +comment0.text=\n\ Converts\ a\ Date\ object\ to\ a\ corresponding\ String\ in\n\ the\ long\ date\ pattern\ style\ "Saturday,\ 25\ March\ 2023".\n\n\ @param\ \ \ \ \ date\ \ a\ Date\ object\n\n\ @return\ \ \ \ a\ String,\ containing\ a\ long\ date\ pattern\n +comment1.params=date +comment1.target=java.lang.String\ convertDateToShortString(java.util.Date) +comment1.text=\n\ Converts\ a\ Date\ object\ to\ a\ corresponding\ String\ in\n\ the\ short\ date\ pattern\ style\ "25-03-2023".\n\n\ @param\ \ \ \ \ date\ \ a\ Date\ object\n\n\ @return\ \ \ \ a\ String,\ containing\ a\ short\ date\ pattern\n +comment2.params=dateString +comment2.target=java.util.Date\ convertStringToDate(java.lang.String) +comment2.text=\n\ Converts\ a\ string\ in\ the\ short\ date\ pattern\ style\ "25-03-2023"\n\ to\ a\ corresponding\ Date\ object.\n\n\ Any\ leading\ or\ trailing\ spaces\ are\ first\ removed\ from\ the\ date\ string.\n\ The\ String\ parameter\ that\ represent\ a\ date\ as\ a\ string\ must\ be\ in\ the\n\ format\ dd-mm-yyy\ (e.g.\ 25-03-2023\ or\ 25-3-2023)\ where\ dd\ represents\n\ one\ or\ two\ digits\ representing\ the\ day\ in\ the\ month,\ similarly\ for\n\ mm\ representing\ the\ month\ in\ the\ year\ and\ yyyy\ represents\ the\ four\n\ digits\ for\ the\ year.\n\n\ A\ RuntimeException\ is\ thrown\ if\ the\ date\ string\ is\ not\ recognised\ as\n\ a\ valid\ date.\ Such\ exceptions\ do\ not\ need\ to\ be\ caught\ or\ thrown\ as\ \n\ they\ are\ unchecked\ exceptions,\ but\ can\ be\ caught\ if\ necessary.\n\n\ @param\ \ \ \ \ dateString\ \ a\ Date\ object\n\n\ @return\ \ \ \ the\ Date\ object\n +comment3.params=startDate\ endDate +comment3.target=int\ daysBetween(java.util.Date,\ java.util.Date) +comment3.text=\n\ Calculates\ the\ number\ of\ days\ between\ two\ given\ dates,\ startDate\ and\ endDate.\n\n\ If\ startDate\ is\ after\ endDate\ then\ the\ number\ of\ days\ returned\ will\ be\ negative.\n\n\ @param\ \ \ \ \ startDate\ \ \ a\ Date\ object\n\ @param\ \ \ \ \ endDate\ \ \ \ \ a\ Date\ object\n\n\ @return\ \ \ \ an\ int,\ number\ of\ days\ between\ the\ dates\n +comment4.params=date\ noOfDays +comment4.target=java.util.Date\ incrementDate(java.util.Date,\ int) +comment4.text=\n\ Given\ date,\ a\ Date\ object,\ and\ noOfDays,\ an\ int,\ the\ method\ returns\n\ a\ Date\ object\ corresponding\ to\ noOfDays\ later\ than\ date.\n\n\ If\ noOfDays\ is\ negative,\ the\ resulting\ Date\ object\ will\ be\ before\ date.\n\n\ @param\ \ \ \ \ date\ \ \ \ \ \ a\ Date\ object\n\ @param\ \ \ \ \ noOfDays\ \ an\ int\n\n\ @return\ \ \ \ a\ Date\n +comment5.params=year +comment5.target=boolean\ isLeapYear(int) +comment5.text=\n\ Given\ year,\ an\ int,\ the\ method\ checks\ to\ see\ if\ the\ year\n\ is\ a\ leap\ year.\n\n\ @param\ \ \ \ \ year,\ \ an\ int\n\n\ @return\ \ \ \ a\ boolean,\ true\ only\ if\ the\ year\ is\ a\ leap\ year.\n +comment6.params=dateString +comment6.target=boolean\ isValidDateString(java.lang.String) +comment6.text=\n\ Given\ dateString,\ a\ String,\ the\ method\ checks\ to\ see\ if\ string\n\ corresponds\ to\ a\ valid\ shortDatePattern.\ \n\n\ @param\ \ \ \ \ dateString,\ a\ String\n\n\ @return\ \ \ \ a\ boolean,\ true\ only\ if\ the\ dateString\ is\ a\ valid\ pattern\n +comment7.params=date +comment7.target=java.util.Date\ nextDate(java.util.Date) +comment7.text=\n\ Given\ date,\ a\ Date\ object,\ the\ method\ returns\n\ a\ Date\ object\ corresponding\ to\ the\ next\ day.\n\n\ @param\ \ \ \ \ noOfDays\ \ an\ int\n\n\ @return\ \ \ \ a\ Date\n +numComments=8 diff --git a/Semester 2/Programming 2/Project/Part 2/DateUtil.java b/Semester 2/Programming 2/Project/Part 2/DateUtil.java new file mode 100644 index 0000000..3839bff --- /dev/null +++ b/Semester 2/Programming 2/Project/Part 2/DateUtil.java @@ -0,0 +1,263 @@ +import java.text.SimpleDateFormat; +import java.text.ParseException; +import java.text.ParsePosition; +import java.util.Date; +import java.util.Calendar; +import java.util.GregorianCalendar; +/** + * + * A class DateUtil with the following methods for dealing with dates. + * + * public static String convertDateToLongString(Date date) + * public static String convertDateToShortString(Date date) + * public static Date convertStringToDate(String dateString) + * public static int daysBetween(Date startDate, Date endDate) + * public static Date incrementDate(Date date, int noOfDays) + * public static boolean isLeapYear(int year) + * public static boolean isValidDateString(String dateString) + * public static Date nextDate(Date date) + * + * @author D E Newton + * + */ + +public class DateUtil +{ + public static SimpleDateFormat dateFormatter; + private static String longDatePattern; + private static String shortDatePattern; + + /** + * initializer block -- useful for + * initializing static fields + */ + static + { + shortDatePattern = "dd-MM-yyyy"; // dd = day, MM = month, yyyy = year (as 2, 2 and 4 digits respectively) + longDatePattern = "EEEE, d MMMM yyyy"; // e.g. Saturday, 25 March 2023 + // EEEE (4 or more) = day in week, in full e.g.Saturday + // MMMMM (4 or more) = month name as text in full e.g. March + // d = day as 1 or 2 digits e.g. 25th of month -> 25, 23rd -> 23 + // + // some alternatives below to help understanding (see documentation for SimpleDateFormat class) + // EE (3 or less) -> Tue + // MMMM = month name as text in short e.g. Oct + // M (or MM) = month as digits e.g. 1 (or 01) would correspond to January + dateFormatter = new SimpleDateFormat(shortDatePattern); // default pattern set + dateFormatter.setLenient(false); // default is true and impossible dates such + // as 31-09-2023 would be accepted but interpreted as 01-10-2023 + } + + /** + * Converts a Date object to a corresponding String in + * the long date pattern style "Saturday, 25 March 2023". + * + * @param date a Date object + * + * @return a String, containing a long date pattern + */ + public static String convertDateToLongString(Date date) + { + dateFormatter.applyPattern(longDatePattern); + String dateString = dateFormatter.format(date); + dateFormatter.applyPattern(shortDatePattern); // reset pattern + return dateString; + } + + /** + * Converts a Date object to a corresponding String in + * the short date pattern style "25-03-2023". + * + * @param date a Date object + * + * @return a String, containing a short date pattern + */ + public static String convertDateToShortString(Date date) + { + return dateFormatter.format(date); + } + + /** + * Converts a string in the short date pattern style "25-03-2023" + * to a corresponding Date object. + * + * Any leading or trailing spaces are first removed from the date string. + * The String parameter that represent a date as a string must be in the + * format dd-mm-yyy (e.g. 25-03-2023 or 25-3-2023) where dd represents + * one or two digits representing the day in the month, similarly for + * mm representing the month in the year and yyyy represents the four + * digits for the year. + * + * A RuntimeException is thrown if the date string is not recognised as + * a valid date. Such exceptions do not need to be caught or thrown as + * they are unchecked exceptions, but can be caught if necessary. + * + * @param dateString a Date object + * + * @return the Date object + */ + public static Date convertStringToDate(String dateString) + { + dateString = dateString.trim(); + + ParsePosition posn = new ParsePosition(0); // initialise posn to the beginning of the string to be parsed + + Date date = dateFormatter.parse(dateString, posn); + int endIndex = posn.getIndex(); // posn after parsing + + String message = "Date string <" + dateString + "> not recognised"; + if( date==null ) + { + // parsing failed because string not recognised + message += "."; + throw new RuntimeException(message); + } + else if( endIndex!=dateString.length() ) + { + // parsing failed because parsing did not "consume" all the characters + // in the string, indicating the complete string was not recognised + message += " because it contains extra characters after a date."; + throw new RuntimeException(message); + } + else + return date; + } + + /** + * Calculates the number of days between two given dates, startDate and endDate. + * + * If startDate is after endDate then the number of days returned will be negative. + * + * @param startDate a Date object + * @param endDate a Date object + * + * @return an int, number of days between the dates + */ + public static int daysBetween(Date startDate, Date endDate) + { + // first check that startDate is not after endDate + boolean outOfOrder; + Date temp; + + if( startDate.compareTo(endDate)<=0 ) + { + outOfOrder = false; + } + else + { + outOfOrder = true; + temp = startDate; + startDate = endDate; + endDate = temp; + } + + int daysBetween = 0; + + Calendar calendar = new GregorianCalendar(); + calendar.setTime(startDate); // initialised at start date + + Calendar calendarEndDate = new GregorianCalendar(); + calendarEndDate.setTime(endDate); + + // First advance calendar a year at a time without advancing past the end date. + // This is much quicker, for dates that are years apart, than simply relying on the + // later "day at a time" loop. Advancing "a month at a time" before the "day at a + // time" loop would be even better but complex because of the varying month lengths. + + Calendar prevYearCalendar = (Calendar) calendar.clone(); + calendar.add(Calendar.YEAR, 1); + // advance calendar a year at a time until end date reached + while( !calendar.getTime().after(endDate) ) + { + if( isLeapYear(prevYearCalendar.get(Calendar.YEAR)) && + prevYearCalendar.get(Calendar.MONTH)F>9u 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 literal 5403 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 bz!?6GoGpKQF!~cjcslsq>(|tc;IjV$!Ba^U diff --git a/Semester 2/Programming 2/Project/Part 2/Library.ctxt b/Semester 2/Programming 2/Project/Part 2/Library.ctxt index 7e30fc6..f596dd7 100644 --- a/Semester 2/Programming 2/Project/Part 2/Library.ctxt +++ b/Semester 2/Programming 2/Project/Part 2/Library.ctxt @@ -4,20 +4,23 @@ comment0.target=Library() comment0.text=\n\ Constructor\ for\ objects\ of\ class\ Library\n comment1.params=item comment1.target=void\ storeItem(LibraryItem) -comment1.text=\n\ Appends\ a\ LibraryItem\ to\ the\ itemList.\n +comment1.text=\n\ Inserts\ object\ value\ item\ alongside\ key\ of\ @itemCode\ into\ @itemsMap.\n comment2.params=user comment2.target=void\ storeUser(LibraryUser) -comment2.text=\n\ Appends\ a\ LibraryUser\ to\ the\ userList.\n -comment3.params=prefix\ length -comment3.target=java.lang.String\ generateUserID(java.lang.String,\ int) -comment3.text=\n\ Returns\ a\ random\ unique\ user\ ID\ by\ specifying\ \n\ @prefix\ -\ arbitrary\ alphanumeric\ prefix\n\ @length\ -\ length\ of\ numeric\ ID\n\ and\ returning\ a\ unique\ user\ id\n\ @uuid\ -\ a\ unique\ string\ starting\ with\ @prefix,\ and\ concat.\ with\ a\ random\ number\n\ \n\ Example\:\ length\ \=\ 6,\ expected\ result\ should\ be\ under\ 999,999\ and\ above\ 99,999.\n\ If\ we\ just\ use\ 10^(length),\ this\ would\ generate\ any\ number\ under\ 1,000,000.\n\ This\ is\ an\ issue\ since\ any\ integers\ below\ 100,000\ can\ be\ used,\ which\ would\ be\ incorrect.\n\ By\ using\ the\ offset\ of\ a\ factor\ of\ 10\ below\ the\ desired\ length\ we\ can\ generate\ between\ 0\ and\ 899,999.\n\ After\ this,\ we\ can\ add\ 100,000\ back\ to\ the\ number\ to\ ensure\ a\ baseline\ length\ is\ maintained.\n\ \n\ Note\:\ I\ am\ aware\ that\ this\ is\ overengineered,\ and\ that\ several\ random\ integers\ of\ amount\ @length\ could\ be\ used,\ \n\ but\ this\ is\ considerably\ more\ efficient\ since\ there\ is\ no\ iteration\ involved\ in\ the\ creation\ of\ the\ ID.\ O(1)\n -comment4.params= -comment4.target=void\ writeUserData() -comment4.text=\n\ A\ method\ to\ output\ all\ user\ data\ to\ a\ file\ using\ a\ fileDialog\ to\ specify\ file\ location.\n\ \n\ Note\:\ Potentially\ could\ implement\ the\ HashSet\ made\ for\ GenerateUserID\ to\ avoid\ unnecessary\ recursion.\n +comment2.text=\n\ Inserts\ object\ value\ user\ alongside\ key\ of\ @userID\ into\ @customerMap.\n\ If\ the\ userID\ is\ set\ to\ unknown,\ it\ will\ call\ @generateUserID.\n +comment3.params=reservation +comment3.target=void\ storeLibraryReservation(LibraryReservation) +comment3.text=\n\ Inserts\ object\ value\ reservation\ alongside\ key\ of\ @reservationNo\ into\ @libraryReservationMap.\n +comment4.params=prefix\ length +comment4.target=java.lang.String\ generateUserID(java.lang.String,\ int) +comment4.text=\n\ Returns\ a\ random\ unique\ user\ ID\ by\ specifying\ \n\ @prefix\ -\ arbitrary\ alphanumeric\ prefix\n\ @length\ -\ length\ of\ numeric\ ID\n\ and\ returning\ a\ unique\ user\ id\n\ @uuid\ -\ a\ unique\ string\ starting\ with\ @prefix,\ and\ concat.\ with\ a\ random\ number\n\ \n\ Example\:\ length\ \=\ 6,\ expected\ result\ should\ be\ under\ 999,999\ and\ above\ 99,999.\n\ If\ we\ just\ use\ 10^(length),\ this\ would\ generate\ any\ number\ under\ 1,000,000.\n\ This\ is\ an\ issue\ since\ any\ integers\ below\ 100,000\ can\ be\ used,\ which\ would\ be\ incorrect.\n\ By\ using\ the\ offset\ of\ a\ factor\ of\ 10\ below\ the\ desired\ length\ we\ can\ generate\ between\ 0\ and\ 899,999.\n\ After\ this,\ we\ can\ add\ 100,000\ back\ to\ the\ number\ to\ ensure\ a\ baseline\ length\ is\ maintained.\n\ \n\ Note\:\ I\ am\ aware\ that\ this\ is\ overengineered,\ and\ that\ several\ random\ integers\ of\ amount\ @length\ could\ be\ used,\ \n\ but\ this\ is\ considerably\ more\ efficient\ since\ there\ is\ no\ iteration\ involved\ in\ the\ creation\ of\ the\ ID.\ O(1)\n comment5.params= -comment5.target=void\ printAll() -comment5.text=\n\ Prints\ to\ the\ terminal,\ in\ a\ human-readable\ format,\ all\ items\ in\ the\ itemList\n\ \n\ Contains\ a\ marker\ at\ the\ start\ and\ end\ to\ visualise\ in\ terminal\ output.\n +comment5.target=void\ writeUserData() +comment5.text=\n\ A\ method\ to\ output\ all\ user\ data\ to\ a\ file\ using\ a\ fileDialog\ to\ specify\ file\ location.\n\ \n\ Note\:\ Potentially\ could\ implement\ the\ HashSet\ made\ for\ GenerateUserID\ to\ avoid\ unnecessary\ recursion.\n comment6.params= -comment6.target=void\ readData() -comment6.text=\n\ A\ method\ to\ read\ all\ data\ from\ files\ using\ a\ fileDialog\ to\ specify\ file\ location.\n\ This\ will\ create\ the\ corresponding\ objects\ depending\ on\ flags\ contained\ in\ the\ file\n\ and\ populate\ it's\ fields.\n\ \n\ Default\ flag\ value\:\ "book",\ to\ support\ legacy\ files.\ This\ will\ not\ interfere\ with\ \n\ files\ of\ different\ flag\ orders.\n -numComments=7 +comment6.target=void\ printAll() +comment6.text=\n\ Prints\ to\ the\ terminal,\ in\ a\ human-readable\ format,\ all\ items\ in\ the\ itemList\n\ \n\ Contains\ a\ marker\ at\ the\ start\ and\ end\ to\ visualise\ in\ terminal\ output.\n +comment7.params= +comment7.target=void\ readData() +comment7.text=\n\ A\ method\ to\ read\ all\ data\ from\ files\ using\ a\ fileDialog\ to\ specify\ file\ location.\n\ This\ will\ create\ the\ corresponding\ objects\ depending\ on\ flags\ contained\ in\ the\ file\n\ and\ populate\ it's\ fields.\n\ \n\ Default\ flag\ value\:\ "book",\ to\ support\ legacy\ files.\ This\ will\ not\ interfere\ with\ \n\ files\ of\ different\ flag\ orders.\n +numComments=8 diff --git a/Semester 2/Programming 2/Project/Part 2/Library.java b/Semester 2/Programming 2/Project/Part 2/Library.java index 91112fd..8aef1d9 100644 --- a/Semester 2/Programming 2/Project/Part 2/Library.java +++ b/Semester 2/Programming 2/Project/Part 2/Library.java @@ -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 itemList; // Initialise an ArrayList of name itemList to store Library Items - private ArrayList userList; // Initialise an ArrayList of name userList to store Library Users + // private List itemList; // Initialise an ArrayList of name itemList to store Library Items + // private List userList; // Initialise an ArrayList of name userList to store Library Users private HashSet uuidSet; // Initialise a Hash Set of name uuidSet ( unique user identifier ) to store unique user IDs for efficient O(1) searching + private Map customerMap; + private Map itemsMap; + private Map libraryReservationMap; /* * Constructor for objects of class Library */ public Library() { - itemList = new ArrayList(); - userList = new ArrayList(); + // itemList = new ArrayList(); + // userList = new ArrayList(); uuidSet = new HashSet(); + + customerMap = new HashMap(); + itemsMap = new HashMap(); + libraryReservationMap = new HashMap(); } /* - * 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 ); diff --git a/Semester 2/Programming 2/Project/Part 2/LibraryReservation.class b/Semester 2/Programming 2/Project/Part 2/LibraryReservation.class new file mode 100644 index 0000000000000000000000000000000000000000..ff244185fde24f69ddac42c854738fe84a4f8b72 GIT binary patch literal 1657 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 literal 0 HcmV?d00001 diff --git a/images/Pasted image 20240308102031.png b/images/Pasted image 20240308102031.png new file mode 100644 index 0000000000000000000000000000000000000000..f35bc295d3ef83497046b0fe5205e6d4150f3473 GIT binary patch literal 28303 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 KkIJNtg8m28YPQM% literal 0 HcmV?d00001 diff --git a/images/Pasted image 20240308103720.png b/images/Pasted image 20240308103720.png new file mode 100644 index 0000000000000000000000000000000000000000..baef434b3a074a1f666b36c904daff7dab49b771 GIT binary patch literal 21675 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 literal 0 HcmV?d00001