From abb50f093b9e97ed5180b669b78cabc8d53d7f0c Mon Sep 17 00:00:00 2001 From: phaneesh Date: Tue, 11 Jun 2019 13:21:38 +0530 Subject: [PATCH 01/10] Week 2 assignment 1 --- Week 2 Assignment 1/Factorial_W2A1_3.class | Bin 0 -> 632 bytes Week 2 Assignment 1/Factorial_W2A1_3.java | 15 +++++++++++++++ Week 2 Assignment 1/Fibonacci_W2A1_1.class | Bin 0 -> 976 bytes Week 2 Assignment 1/Fibonacci_W2A1_1.java | 18 ++++++++++++++++++ Week 2 Assignment 1/Reverse_W2A1_4.class | Bin 0 -> 856 bytes Week 2 Assignment 1/Reverse_W2A1_4.java | 19 +++++++++++++++++++ Week 2 Assignment 1/SumOFArray_W2A1_2.class | Bin 0 -> 724 bytes Week 2 Assignment 1/SumOFArray_W2A1_2.java | 15 +++++++++++++++ 8 files changed, 67 insertions(+) create mode 100644 Week 2 Assignment 1/Factorial_W2A1_3.class create mode 100644 Week 2 Assignment 1/Factorial_W2A1_3.java create mode 100644 Week 2 Assignment 1/Fibonacci_W2A1_1.class create mode 100644 Week 2 Assignment 1/Fibonacci_W2A1_1.java create mode 100644 Week 2 Assignment 1/Reverse_W2A1_4.class create mode 100644 Week 2 Assignment 1/Reverse_W2A1_4.java create mode 100644 Week 2 Assignment 1/SumOFArray_W2A1_2.class create mode 100644 Week 2 Assignment 1/SumOFArray_W2A1_2.java diff --git a/Week 2 Assignment 1/Factorial_W2A1_3.class b/Week 2 Assignment 1/Factorial_W2A1_3.class new file mode 100644 index 0000000000000000000000000000000000000000..d3ba8bf70338e1c2c4caf85f957672fe260697a1 GIT binary patch literal 632 zcmZ8dO-~w86g>|f42*-~2ebvO-wC>qXuFd%X-r5+sJ5Zeg$wf-CirleA>)jRf2O~n z8#Sq>i~fNAsHSId5=uAszIX1u=bU?g|M~d~zqgUfgOv4RB?a~6tNG_Yo29UB&M$Q#(Su!U`b;{RiWrq)h-Lnq$xAEPIY;UiQ#_<1?2Cxr(DkM*_uQlLb_kv{|6h5{=gAV~J=QqDK1V8UMtQkz|`X Ndhs7CudtXx=`a7>Y)}9I literal 0 HcmV?d00001 diff --git a/Week 2 Assignment 1/Factorial_W2A1_3.java b/Week 2 Assignment 1/Factorial_W2A1_3.java new file mode 100644 index 0000000..51a4a39 --- /dev/null +++ b/Week 2 Assignment 1/Factorial_W2A1_3.java @@ -0,0 +1,15 @@ +public class Factorial_W2A1_3 { + static int product = 1; + public static void main(String args[]) { + int num = 4; + System.out.println(recursion(num)); + } + + static int recursion(int num) { + if(num > 0) { + product = product * num; + recursion(num - 1); + } + return product; + } +} \ No newline at end of file diff --git a/Week 2 Assignment 1/Fibonacci_W2A1_1.class b/Week 2 Assignment 1/Fibonacci_W2A1_1.class new file mode 100644 index 0000000000000000000000000000000000000000..321640cc9fa79714a45c6fd01394ef7a38768544 GIT binary patch literal 976 zcmaJkA3)@{vX{kyd)<+epfb`*`OH9T1Ux-6S!E9?@wnD}S> z4?;qXCjJ0_l<^F#BE|S+?wvb#&N=tY{P_9xJAiGN8fLMU#1&jsaZN*1Zc?}|v-JdS z$aqs$@-i!E*uX7~+uO2MR8dk<7KjB-t6dQg`(eHr#w~$()%D!qp+GcWI22Hx_zg#3 z_Q3U=XWdra>AbS)O;(ha<$3~(`L_or)(5NHw7lbTE$F!3u_-SmJC5D$oVq@nl>ELd z8MVN&-#@k5Aw;5TH$yV5=65@`v*$|a?4DcqJ9Z-y(5V;*w?>GNzXjj^BCPaHd# zDAhim(mxvHcX^N7&(dJ6=OznZr+66pCeEF+X)^{;xj~_#>AE z7V^`LM4TV0pA^LRZA*F7`!Bvjey9|G7Wior(m-Yj>Dn;TCPoEhM3(C!cPos7F}86A z@tFxE(_`Y2*3kf8{b;`o3eewQawN;UThyM!g&yFLttzT6mnB>$#0Cb@D-BV>yVCs-vq zppkEemdH 0) { + temp3 = temp1 + temp2; + temp1 = temp2; + temp2 = temp3; + System.out.print(temp3 + " "); + recursion(num - 1); + } + } +} \ No newline at end of file diff --git a/Week 2 Assignment 1/Reverse_W2A1_4.class b/Week 2 Assignment 1/Reverse_W2A1_4.class new file mode 100644 index 0000000000000000000000000000000000000000..8212dc7ddf1a641e4b427b0316971233300539e6 GIT binary patch literal 856 zcmZuu?M@Rx6g|`3c0XK7QCp>oiXX5o+6v(x#Dtib5YZZIBn>}cyPc55woA5K5?;n< z&^A$G2oK;x8PDuCHVy8NJ9qEgd(J&)e*gJ(1z-~!Hf-Ftu!IK|EIhOs9@$vNWA*z) zg{L;2Va33z0arltqDUZfuq!YZ$uk)ZWM?OeymJA=4~P9&@>=jVw;l9@_!TGI%4Y%n zb=Z*t^Ls&Gz9075GWz7TyR7IvFX#)D+=IOn@64-rz5a2%8An0?cuNghk@SbrAPCu1 zbayM)ySPa+_WUpJyweG$x$So+>~=F8M!tL#D6U%{(~S@JH+I$!H*1Q}K>-T}Dh{ex zb8rKWgA(o-c<$f@Y7XX9C69Rnbq6o8E|8yv5hzSIZ?sROAJ3GU=Yv@GXhb;VMKKi+ zg!K>97*nbAdRyEr!I&-6(^J*dO|)NEuKY>4hjGxYC+{#2Fyk;aFtPQ2mhpitK0Kho zRFavQN@#LYD^DH7#scF_{w?toJhRoG5Z{?_Va8li)ChJPMdqrticC_?kB}KbySjk> z1KH_}&HI$jA}Ot&%pD<{%+MzSuH#xKwbLRSm)=+u}b#Z`r24HS^MLX}LyAHyW*Mfl02w%qUomams#a ZkCD?zJC%?po^oi3j4O!=W&USy?=NuQqa^?U literal 0 HcmV?d00001 diff --git a/Week 2 Assignment 1/Reverse_W2A1_4.java b/Week 2 Assignment 1/Reverse_W2A1_4.java new file mode 100644 index 0000000..74167d9 --- /dev/null +++ b/Week 2 Assignment 1/Reverse_W2A1_4.java @@ -0,0 +1,19 @@ +import java.util.Arrays; + +public class Reverse_W2A1_4 { + static int[] arr = {3,4,6,7,9}; + static int[] reversedArray = new int[arr.length]; + static int counter = 0; + public static void main(String args[]) { + System.out.println(recursion(arr.length)); + } + + static String recursion(int arrLength) { + if(arrLength > 0) { + reversedArray[counter] = arr[(arr.length - 1) - counter]; + counter++; + recursion(arrLength - 1); + } + return Arrays.toString(reversedArray); + } +} \ No newline at end of file diff --git a/Week 2 Assignment 1/SumOFArray_W2A1_2.class b/Week 2 Assignment 1/SumOFArray_W2A1_2.class new file mode 100644 index 0000000000000000000000000000000000000000..4628b3c13ed4623bfb9ec0d103c0a52df9a674dd GIT binary patch literal 724 zcmZWme{0iF6g@9V^O`K%vdvYkPFJRHpxg6VPD2i z;6HYtBC-$QhZ4_=#W4-McYnNl&pqen=dbUV0AApk4GVWH+{K!OD(>05?%P;LLxm62 z^-$uGL{mVY6tRHV<%t;iStg(zGBmfNB+6eh*J=+0j92M#D6qH}CE=SQ9);PyKN>S* z#D0_r)LMsor~U`OJNA>4Za>eWQ`tZU^Jp zFuR`?SrG0-3cA)WVsEFHW&Zim!DjFI(dLF4;b0N2#A63f&~h-31qZ9BNwghw@YI2g zIR_5r1eX3o5OA+(dZW`Y$gidP=aW3-M)b7c!|ESRQQCb=K{;iGe!L~HQes?B3&=B7 zG@c0^put63{3ALoInk>sTBRjxS_51uT;5BJ)@TK7rSlcyGaZ3t-e#HPCb5DW^i^pG zTA5v#LYqRr{08F-Dpx%=-wDL!m>kOO%=!i-qee9AAF)1#$=)gC#=8sUN`qF`jbox6 z@bME1wUR=OP>Q`l63f(5r-}x_Z!$|jCG^%`89kP%uc;H2M^=B>L*4X-hV+J&iZ?V} VI?}bg3+Vq+)(E92-X?&C`fnohc>e$Z literal 0 HcmV?d00001 diff --git a/Week 2 Assignment 1/SumOFArray_W2A1_2.java b/Week 2 Assignment 1/SumOFArray_W2A1_2.java new file mode 100644 index 0000000..15ce919 --- /dev/null +++ b/Week 2 Assignment 1/SumOFArray_W2A1_2.java @@ -0,0 +1,15 @@ +public class SumOFArray_W2A1_2 { + static int sum = 0, i = 0; + static int[] arr = {3,4,2,7,9}; + public static void main(String args[]) { + System.out.println(recursion(arr.length)); + } + static int recursion(int arrLength) { + if(arrLength > 0) { + sum += arr[i]; + i++; + recursion(arrLength - 1); + } + return sum; + } +} \ No newline at end of file From 703e6799178029951d9ec442748d749aa1803552 Mon Sep 17 00:00:00 2001 From: phaneesh Date: Tue, 11 Jun 2019 13:27:06 +0530 Subject: [PATCH 02/10] Week 2 assignment 2 --- Week 2 Assignment 2/PizzaShop_W2A2_1.class | Bin 0 -> 3308 bytes Week 2 Assignment 2/PizzaShop_W2A2_1.java | 106 +++++++++++++++++++ Week 2 Assignment 2/PizzaShop_W2A2_1_v2.java | 54 ++++++++++ 3 files changed, 160 insertions(+) create mode 100644 Week 2 Assignment 2/PizzaShop_W2A2_1.class create mode 100644 Week 2 Assignment 2/PizzaShop_W2A2_1.java create mode 100644 Week 2 Assignment 2/PizzaShop_W2A2_1_v2.java diff --git a/Week 2 Assignment 2/PizzaShop_W2A2_1.class b/Week 2 Assignment 2/PizzaShop_W2A2_1.class new file mode 100644 index 0000000000000000000000000000000000000000..7a65ecb7162936e9c611eaf66695f70db7f29882 GIT binary patch literal 3308 zcma)8`+pNv7XMC~WTwfqwrLC007ejKV`*ve*#bgaV5>m7rUDTarpdG&n$E;zq7>h* zE53Gpu@Cp*?z#`xx3V<2R&dw%LBpLIinZuMNrGdyM}?dSZ_jW;{>kjIT0D*?R6H5MWw13oCH!YXelFzc2%f>SGI~zK z^BPXd{1+O2so_^Del5l?M9_iXsQ7J!?&#rn8h$Us7e)RD8U0bipM<|85?tF1ZSt4(&N=++}p-4ST#R?G`P2 zyiY;YTTK;Q%dr(GLkc3EWVmQ$O$C8NlxVI~C{Vqmpnh&RXHhpNs2YSyR?ehi)Z=qn z5pPyii8y0pW^rV?;OTjjIlWN9-&Psqt~sleb;>rOhqqX^C~RHg3ArP3qFFk)7OY6y}ynrkj#|Y2G#@UPQSn(YToQaf`G%j8Zys z{^U_E%+JJPz>lj~RENPS!(tSdwJj0q_Wde$^X_@$Ojd?D?UajIbC)H+TZXOU$Bp!a zQ#gE}XGhQB?oPQX9S3kwLBrx}qw&auWhbh;>H`y|Suzv-<)YkkbRch(N>(;8Y}h(> zVYiMOag!IdBEhKx6IOQ8qT>wSRq;<9?_pLX?=xW&M6)izdyMEfi&-91jJOa{ z(CGOuyH>s{oi%LREb2Ii4GemYoWUF@A(+MxnO9|JZgkJ#54|`wxtX2Ee3knHz3YtQ2>CXcfqJkGlEI4j5F ztPzj1h&;|Z@;FP$<18PKvx3N@P^3AK@}r~>2uHvd$um%r;j;*2YGO6%OfVKqXF{=1 zdIsTS`29$xrXiQg1RL>rDidl{I#M%GlbWxtiF&Q5N79*aESk=!F`b5WNo@(kOt?{b zCY4bemH*I5eNy$ETp~^y#7Uz#iP63(seZ5h44RW6Z?&1Q8hYreC0R3rW$*AX3T`D` z&(AGTgCPIo2xBuec9IB=LB~ndvyn8gej2IG67j=n(eYtV{zT#Bv4eRUADri#l2OuLq6IjqTT*|Xq)0a1R6{F*qeRqS1!bUb}{x%#NLg5Y+?a!UWk1s zF|bE3jeW&p?AH*xoR+P9Y3y|u!(O)ld;Jf?-b?I##NJEnTQ9`U&(6}=moLV?o!EC! zm!GVqv4<~)J-h(B`opjf68lbKA0+nOi?P>Y4C6i$rHwfgV$PhLMMvfoHl9J}o>_FU znl|laCd9f~M8bLZ>pCjf%nQG2TgR#jt`_MvzVzDj((6Qey)W%OFYOcQ7D_4E+8b;Q z#(!wYB?`F3A>$9e63?lZvI;CwQTv1q|^jj{_j@eLH`8)hvZI2-uB>EQFGn_c*N zzGk+vdixpW-7NVOTTq%uKgepnofT@bQYM-EWoF%d%%g|+aCnr`CmD;UF@fh{d4XC6 Y 0) { + discount = offerTypes[offerOption - 1] / 100.00; + discount = price * discount; + price = price - discount; + } + System.out.println("Total: Rs " + price); + } + + public void setOffer(int option) { + offerOption = option; + } + + public void getOffer() { + for(int i = 0; i < offerTypes.length; i++) { + System.out.print((i + 1) + " " + offerTypes[i] + "% Off\n"); + } + } + + public void setSides(int option) { + sidesOption = option - 1; + } + + public void getSides() { + for(int i = 0; i < sides.length; i++) { + System.out.print((i + 1) + " " + sides[i] + " Rs " + sidesPrice[i] + "\n"); + } + } + + public void setToppings(int option) { + toppingsOption = option - 1; + } + + public void getToppings() { + for(int i = 0; i < toppings.length; i++) { + System.out.print((i + 1) + " " + toppings[i] + " Rs " + toppingsPrice[i] + "\n"); + } + } + + public void setCrust(int option) { + crustOption = option - 1; + } + + public void getCrust() { + for(int i = 0; i < crust.length; i++) { + System.out.print((i + 1) + " " + crust[i] + " Rs " + crustPrice[i] + "\n"); + } + } + + public static void main(String args[]) { + Scanner scans = new Scanner(System.in); + PizzaShop_W2A2_1 pizzaShop = new PizzaShop_W2A2_1(); + int option; + String offerGiven; + System.out.println("Select from below"); + + System.out.println("Crust:"); + pizzaShop.getCrust(); + option = scans.nextInt(); + pizzaShop.setCrust(option); + + System.out.println("Toppings: "); + pizzaShop.getToppings(); + option = scans.nextInt(); + pizzaShop.setToppings(option); + + System.out.println("Sides: "); + pizzaShop.getSides(); + option = scans.nextInt(); + pizzaShop.setSides(option); + + System.out.println("Any discounts to be applied?\ny/n"); + offerGiven = scans.next(); + if(offerGiven.equals("y")) { + System.out.println("Offers: "); + pizzaShop.getOffer(); + option = scans.nextInt(); + pizzaShop.setOffer(option); + } + pizzaShop.getPrice(); + scans.close(); + } +} \ No newline at end of file diff --git a/Week 2 Assignment 2/PizzaShop_W2A2_1_v2.java b/Week 2 Assignment 2/PizzaShop_W2A2_1_v2.java new file mode 100644 index 0000000..fdfb913 --- /dev/null +++ b/Week 2 Assignment 2/PizzaShop_W2A2_1_v2.java @@ -0,0 +1,54 @@ +public class PizzaShop_W2A2_1_v2 { + private String crustType; + private String toppingType; + private String sidesType; + private int offers; + private boolean offerApplied = false; + private double price; + private double discount; + + private int crustTypeAmount; + //crusttype, toppings, sides, offers, price + PizzaShop_W2A2_1_v2(String crust, String topping, String sides) { + crustType = crust; + toppingType = topping; + sidesType = sides; + } + + PizzaShop_W2A2_1_v2(String crust, String topping, String sides, int offer) { + crustType = crust; + toppingType = topping; + sidesType = sides; + offers = offer; + offerApplied = true; + } + + // private int getCrustPrice() { + // switch(crustType) { + // case "thinCrust": + // crustTypeAmount = 100; + // break; + // case "cheeseBurst": + // crustTypeAmount = 200; + // break; + // case "classicPan": + // crustTypeAmount = 300; + // break; + // } + // } + + public double calculateTotalPrice() { + //logic to calculate price here + return price; + } + public static void main(String arg[]) { + //(crustType, toppingType, sidesType) + PizzaShop_W2A2_1_v2 pizzaWithoutOffer = new PizzaShop_W2A2_1_v2("Thin Crust", "Corn", "Fries"); + System.out.println("Total price: " + pizzaWithoutOffer.calculateTotalPrice()); + + //20% off applied + //(crustType, toppingType, sidesType, offerDiscount) + PizzaShop_W2A2_1_v2 pizzaWithOfferApplied = new PizzaShop_W2A2_1_v2("Thin Crust", "Cheese Burst", "Classic Pan", 20); + System.out.println("Total price: " + pizzaWithOfferApplied.calculateTotalPrice()); + } +} \ No newline at end of file From dcd4d2046ba900d7d418f4f9f69a9e53b5fbcf89 Mon Sep 17 00:00:00 2001 From: phaneesh Date: Tue, 11 Jun 2019 13:29:56 +0530 Subject: [PATCH 03/10] Week 2 Assignment 3 --- .../SavingsAccount_W2A2_2.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Week 2 Assignment 3/SavingsAccount_W2A2_2.java diff --git a/Week 2 Assignment 3/SavingsAccount_W2A2_2.java b/Week 2 Assignment 3/SavingsAccount_W2A2_2.java new file mode 100644 index 0000000..516aed6 --- /dev/null +++ b/Week 2 Assignment 3/SavingsAccount_W2A2_2.java @@ -0,0 +1,44 @@ +public class SavingsAccount_W2A2_2 { + private double balance; + private String customerName; + private int customerAge; + private String nomineeName; + private long panNumber; + private boolean withdraw = false; + private boolean deposit = false; + + public SavingsAccount_W2A2_2(String custName, int custAge, long panNo) { + customerName = custName; + customerAge = custAge; + panNumber = panNo; + } + + public void updateNomineeDetails(String name) { + nomineeName = name; + } + + public double getBalance() { + return balance; + } + + public void withdraw(String withdrawUsing) { + if(withdrawUsing.equals("withdrawSlip") || withdrawUsing.equals("atm")) { + withdraw = true; + } + if(withdraw) { + //withdraw money code here + } + } + + public void deposit(String depositUsing) { + if(depositUsing.equals("challan") || depositUsing.equals("atm")) { + deposit = true; + } + if(deposit) { + //deposit money code here + } + } + public static void main(String args[]) { + + } +} \ No newline at end of file From 2edb60a1714e4ba9f8498a592a1f58bc84f5b2e9 Mon Sep 17 00:00:00 2001 From: phaneesh Date: Wed, 19 Jun 2019 20:23:18 +0530 Subject: [PATCH 04/10] Week 3 assignment 1 --- Week 3 Assignment 1/BankAccount.class | Bin 0 -> 1209 bytes .../BankAccountClient_W3A1_2.java | 209 ++++++++++++++++++ Week 3 Assignment 1/ContractEmployee.class | Bin 0 -> 1623 bytes Week 3 Assignment 1/CurrentAccount.class | Bin 0 -> 1622 bytes Week 3 Assignment 1/Employee.class | Bin 0 -> 592 bytes Week 3 Assignment 1/EmployeeClient.class | Bin 0 -> 1562 bytes .../EmployeeClient_W3A1_1.java | 115 ++++++++++ Week 3 Assignment 1/MainClass.class | Bin 0 -> 1033 bytes Week 3 Assignment 1/RegularEmployee.class | Bin 0 -> 1604 bytes Week 3 Assignment 1/SalariedAccount.class | Bin 0 -> 1615 bytes Week 3 Assignment 1/SavingsAccount.class | Bin 0 -> 1683 bytes Week 3 Assignment 1/accountRules.class | Bin 0 -> 171 bytes 12 files changed, 324 insertions(+) create mode 100644 Week 3 Assignment 1/BankAccount.class create mode 100644 Week 3 Assignment 1/BankAccountClient_W3A1_2.java create mode 100644 Week 3 Assignment 1/ContractEmployee.class create mode 100644 Week 3 Assignment 1/CurrentAccount.class create mode 100644 Week 3 Assignment 1/Employee.class create mode 100644 Week 3 Assignment 1/EmployeeClient.class create mode 100644 Week 3 Assignment 1/EmployeeClient_W3A1_1.java create mode 100644 Week 3 Assignment 1/MainClass.class create mode 100644 Week 3 Assignment 1/RegularEmployee.class create mode 100644 Week 3 Assignment 1/SalariedAccount.class create mode 100644 Week 3 Assignment 1/SavingsAccount.class create mode 100644 Week 3 Assignment 1/accountRules.class diff --git a/Week 3 Assignment 1/BankAccount.class b/Week 3 Assignment 1/BankAccount.class new file mode 100644 index 0000000000000000000000000000000000000000..993ea6b7b4712d73554c936ffa6aa4668c850c05 GIT binary patch literal 1209 zcmZ`%+fEZv6kVsCcFHi6TdN=-AYiA%rHY^?7?VO{B*FTCF)==!PA53n&Y0=c#D6mJ z+Gu?61N}F0D=>3%F5k;iL;7c>(;8qTHI&;kH#+QjOj<>{G+LKZnpIKtx%Rs{r>h1{3b++Fl3s&j zSR;J?$H62Um9K0!XBCGB5Eze%y%p0EmpmQkuI_n4Ilr`OHA%U*Uv*h_oW4=Ya0=rz zXorsb#8Z=JpGnU@YRFb=NBzqt@+g=XhiPI0Sre1$Yf8a1W=zZ?r(@s5eLSGYL+QVz ze$e(KfvJmE^1OELI{j2T@*1Ub7|IXaRVE6$Z%CkEU0zbR=3vA!v=zQkgHJh)gmT8O zgfbUL`eS7GI2y`je5O%GgEx6xBVOm}73(sL8}<(fd$WUtz1Tt0-tIuN=d}(}bE$7g z+w*z{`j=Q{j(96B%0r{j7=^N!;~wVuyMdcnz&aM$K%Kg67THFyPWy`Vr@l%$&Mgxc zV!kr8N@kKVRbbnTh6dBX8XK-_z!ICN374@#RAozyszJ*Bj>PBqQu*w5DDrBRo`#lGaA5YJ;jJQrAaPQ-jo9QaAckn(5wCvnL+kGC%lb9?93u2Q2YlLlH-N| literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/BankAccountClient_W3A1_2.java b/Week 3 Assignment 1/BankAccountClient_W3A1_2.java new file mode 100644 index 0000000..64c78ad --- /dev/null +++ b/Week 3 Assignment 1/BankAccountClient_W3A1_2.java @@ -0,0 +1,209 @@ +// a. A BankAccount will contain the account holders name, account number, +// the account creation date (string as of now), branch name and balance and Address + +// b. A BankAccount can be either SavingsAccount or CurrentAccount or Salaried Account (a special type of savings account) +// c. Current account holders do not have withdrawal limit on their account balance whereas Savings account holders +// can only withdraw 25000 per day. +// d. CurrentAccount holders should have a minimum account balance of Rs 25000. Regular savings account holders should +// maintain 10000 rupees whereas Salaried account holders can maintain 0 balance. +// e. There should be a provision to update Nominee details but they cannot update account number and name. +// f. The address should contain FlatNo, Street, City, State and pin code. +import java.util.Arrays; + +abstract class BankAccount { + private String acHolderName; + private int acNumber; + private String acCreationDate; + public String branchName; + private static double balance; + public String[] address; + + public BankAccount(String acHolderName, int acNumber, String acCreationDate, String branchName, double bal, String[] address) { + this.acHolderName = acHolderName; + this.acNumber = acNumber; + this.acCreationDate = acCreationDate; + this.branchName = branchName; + balance = bal; + this.address = address; + } + + public double getBalance() { + return balance; + } + + public void setBalance(double bal) { + balance = bal; + } + + abstract void updateNomineeDetails(String branchName, String[] address); + + public String getAcHolderName() { + return acHolderName; + } + public int getAcNumber() { + return acNumber; + } + public String getAcCreationDate() { + return acCreationDate; + } + public String getBranchName() { + return branchName; + } + public String getAddress() { + return Arrays.toString(address); + } + abstract void getAccDetails(); +} + +interface accountRules { + void withdrawFunc(double amount); + boolean minAcBalanceMaintained(); +} + +class SavingsAccount extends BankAccount implements accountRules { + + public static double withdrawLimit = 25_000; // per day + private static double minAcBalAmount = 10_000; + + public SavingsAccount(String acHolderName, int acNumber, String acCreationDate, String branchName, double balance, + String[] address) { + super(acHolderName, acNumber, acCreationDate, branchName, balance, address); + } + + @Override + public void withdrawFunc(double amount) { + if(amount < withdrawLimit && getBalance() > minAcBalAmount) { + setBalance(getBalance() - amount); + } + } + + @Override + public boolean minAcBalanceMaintained() { + if(getBalance() < minAcBalAmount) { + return false; + } + else return true; + } + + @Override + void updateNomineeDetails(String branchName, String[] address) { + this.branchName = branchName; + this.address = address; + } + + public void getAccDetails() { + System.out.println( + "\nAccount holder name: " + getAcHolderName() + + "\nAccount number: " + getAcNumber() + + "\nAccount creation date: " + getAcCreationDate() + + "\nBranch name: " + getBranchName() + + "\nAddress: " + getAddress() + ); + } +} + +class CurrentAccount extends BankAccount implements accountRules { + + private static double minAcBalAmount = 25_000; + + public CurrentAccount(String acHolderName, int acNumber, String acCreationDate, String branchName, double bal, + String[] address) { + super(acHolderName, acNumber, acCreationDate, branchName, bal, address); + } + + @Override + public void withdrawFunc(double amount) { + if(getBalance() > minAcBalAmount) { + setBalance(getBalance() - amount); + } + } + + @Override + public boolean minAcBalanceMaintained() { + if(getBalance() < minAcBalAmount) { + return false; + } + else return true; + } + + @Override + void updateNomineeDetails(String branchName, String[] address) { + this.branchName = branchName; + this.address = address; + } + + @Override + public void getAccDetails() { + System.out.println( + "\nAccount holder name: " + getAcHolderName() + + "\nAccount number: " + getAcNumber() + + "\nAccount creation date: " + getAcCreationDate() + + "\nBranch name: " + getBranchName() + + "\nAddress: " + getAddress() + ); + } +} + +class SalariedAccount extends SavingsAccount implements accountRules { + + private static double minAcBalAmount = 0; + + public SalariedAccount(String acHolderName, int acNumber, String acCreationDate, String branchName, double balance, + String[] address) { + super(acHolderName, acNumber, acCreationDate, branchName, balance, address); + // TODO Auto-generated constructor stub + } + + @Override + public void withdrawFunc(double amount) { + if(getBalance() > minAcBalAmount) { + setBalance(getBalance() - amount); + } + } + + @Override + public boolean minAcBalanceMaintained() { + if(getBalance() < minAcBalAmount) { + return false; + } + else return true; + } + + @Override + void updateNomineeDetails(String branchName, String[] address) { + this.branchName = branchName; + this.address = address; + } + + @Override + public void getAccDetails() { + System.out.println( + "\nAccount holder name: " + getAcHolderName() + + "\nAccount number: " + getAcNumber() + + "\nAccount creation date: " + getAcCreationDate() + + "\nBranch name: " + getBranchName() + + "\nAddress: " + getAddress() + ); + } +} + +public class BankAccountClient_W3A1_2 { + public static void main(String args[]) { + String[] address1 = {"Flat No 56", "Street 71", "City31", "State18", "577902"}; + //adding a new savings account + SavingsAccount acc1 = new SavingsAccount("anon1", 12, "today", "bdvt", 13000, address1); + acc1.withdrawFunc(2000); //withdrawing money as per the withdrawal and minimum balance rules + //System.out.println(acc1.getBalance()); + //System.out.println(acc1.minAcBalanceMaintained()); + acc1.getAccDetails(); + SavingsAccount acc2 = new SavingsAccount("anon2", 12, "today", "bdvt", 13000, address1); + //acc2.getAccDetails(); + String[] address2 = {"Flat No 3", "Street 7", "City1", "State10", "577291"}; + acc1.updateNomineeDetails("smg", address2); + acc1.getAccDetails(); + + String[] address3 = {"dummydata"}; + CurrentAccount currentAccount1 = new CurrentAccount("anon3", 56171, "18jun19", "bnglr", 70000, address3); + currentAccount1.getAccDetails(); + } +} \ No newline at end of file diff --git a/Week 3 Assignment 1/ContractEmployee.class b/Week 3 Assignment 1/ContractEmployee.class new file mode 100644 index 0000000000000000000000000000000000000000..a7ee906d05d5cd5faa7979233a572d77d36f4cb6 GIT binary patch literal 1623 zcmbVM+j1L45IrNw+Vy&q2-zkvR*cLol5!D{aEq0TZN;&`aZF^K8<&iwL9D&nRjpU4 z(pT^kJo17A3I$bs03SthW>>Nda`C{!cK7yex=;7apMU-K2Y_q%)DNzCJ2P2SVw z{YhNKH3J`5NaI5jA8G!vwtS+c>n4`;PsPLy&2O5xrTJ|W%bKrPSVh&u9qqhk;;xBx zE!Hf2iq8ye7`P{pY4~0k$VOQ01~PPfPe9ZJtd8t$sbJmj22@l9(iO*Z!kYp&3bl9xxBFmSxq(g~`k<6hO`jzDVFZz_Q^8;++oyX{>SY|CAjno|wwEq6L@Z$ruF z{7)5X#V1tPL)qBBCp!bTTuX%yR9mtfueCZ>e6mnv`B^&MX?I+|r&Lvi(s2(2XyW;1 zrQr@*vFdEEq1GII{PfU&)pe8?UeP_;Sj47{*O9kz9t$?^W6QwjHXfiZaQ5FYtaKf> zsRA8!k%bQv=4;jKOt6hFZ0zVP+jvOett0!UY%A^Y2#*QONH1HF`Uw`adMohvR3prL z1MjEWd(x`!JFa`6!@tB=2EMlO4W32*vX}3uApaekjL(+>i`Ef#`QhZXm*Y3{P1$1} zfr&`cd3FsnY&1c5GDE0`RTIgPSo!};p=V;rV{;cAdgd6ky@OD-IX%A{3e3h^<@n_- zE?&s>Q?k9p^<)O+H3cpg#`mr`rW#C&feD8}Ij-7&_@p%CT&gh_#wR%>fvHYB96d=E za}dphJ9WY(7&g}p9k;w31O%N>hJJjL1TGYg2i@P*GhZ67jz{MT)p7l(vzfxUl~L0X zwEqN9!02c=UEcoLlK|X7o-ay{PgMezz6z8qeJ{u-_$}fM2)s$@Dqk3re7ZD$>HJ)3 zZsH|G>EXHb3nYG`THr0x(@2uu#uS#3#R|1=kEyI3%csb)r(^ky)@Ne*6|K+4^7OBm(Z91Khe-7C zYW8d-CUw9$iha!W@!ANMxSu+o?MG;#jy+y!6PJ#PTZl>n(wPde7{$enRA{}-(i6Dy EH#NI>mH+?% literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/CurrentAccount.class b/Week 3 Assignment 1/CurrentAccount.class new file mode 100644 index 0000000000000000000000000000000000000000..9a85a6b81649b28f3df125d551dfb49ecccce6cd GIT binary patch literal 1622 zcmZ`)ZF3V<6n<`#cDLJ2+J?3iL5YZxCY1VuinK!WLM6~fq*x31cDuRLF5T>AHoJBl z9cLW%11OB&^n>Fs;EOnf8JzJ4_zV0sj_2$yX(jc;-h1}k=bU}cb53sl`seYV08Ya) za2Rt2p25q*w7kOBt8Bf-%jsdfjyE*CX+Xyr9dGe|mND}>7I=S~J?C_s=a)qtW!@_~ zs=U|u@PdIQyfd`;_bvJ$py8s1x`s;v*_Q2=t%`KYEiZHf0Z|heTCiO^I4963EZ>r! z$vH>5n{%syZ@ZiG^?p~sr*^a7H?t;?u6j)+FuH8Jsu8v}lz&ZbIOH*R>|m?u%blgr zwFpT67F9}Q;#DJTT-}2a{${+nc*W^BU09D%qN+p_c8oa%om(_Zf$o zJ_<=sC~!2IiHlJ$V!{)Jemnt3B49k$QPp*UBZYcDb~pEU6jDvvRHH7@(6e@X>GT_OekTPNw(=Bgc+gxIgnHRS11I1FM&kHK?F7s3$PG`qAuPj5xKF?8Cq z#nO@4L+R!QV^4r<|Uj+lAS@CEMPQA_VX_oOx;i4e=5rtl;ule^3{_p z83GhAlVmB;Cz;YnvGfpw#gh*)v|C5a;~QfAE!FfLg%nXr0>5TP6u9yL+8@xbKf-X% z=u)08Oxkjp*v@t_nj4GlarWn8`vBV$u{}v!7gJpv-2L>iNZ{KT!yRhG_r&-I`XjiD nMchLjx3P>L330MV=V&B3-P{wH{vD~^MBF)Go7P#{2XN|NDBEuY literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/Employee.class b/Week 3 Assignment 1/Employee.class new file mode 100644 index 0000000000000000000000000000000000000000..42cfe082c9d77a43888aee666f81ddd6559a947d GIT binary patch literal 592 zcmZuuT}uK%6g}gv-|M%1m|138xt}~PN@RC8}LrO)bv&l&GosL%+;nS(LY74%k6nka}%wMHt%^5N; zn=}FqX-nsdp;2x9&u_Tepi+AzpUugDCMMd_7M;boCuR@4XVFcp&+Y3!p7d&~Mz+#J z;oOd=)?_8bjc~YB7PYF9igYK7Szp{q)t*@wH7zM@=UlD9Ko)reNu&%!5H(;RW+1Mj zgo@J0Fof2P49VZ!-S^b0^djv#Opg)(jYE_orbIj@9gj)MV;bWzsS;~+ve=^fZHk`Y zBMqQpzJr;X3!j;Hp_ykcbhF^XZ{~Ct0W;@!5qzUUh8@BZjR%d+}R5Pc&{+O=40WsxBwc38d=8T=6lB*8Y0ZOJ5dWZ`%TiA)kQS`A|D)$Xzy zLFtwwe}O~JIfui#DlVv8lS6XI?;(|*6|Mr?#RXNVyQin;_3Q4L{p-Kqp98o8nZpFG zX_(P5t7A^bbsh5>KG(6JV==o}_~U1aLw4cc$4Vmy4NHS4qoSlidQFL%5;s-Mx)NXO*wA6?xTWD69k+FSn_W1UB%llyzEfgZM_uVn9e0!_ z;O{m3z>uADeOJyi43x%iGo;HwQ!oryU0>9??S_bM@rFm9bep?A!|~Fc>K1>D2TQ#TR7dwl|2SlrjpBnFC*^AeatV@G`jZ!#hWsp ztWyImpVB)o!>v$6ZqQT&I&i5>tI2yEhM_&2es^E%>CMKLa3s}n$ov@QODhM*dWh?g z!rr>IJPd{3WSA@+tabc= z>*eH$>L^ir!?rGi{yShOlnw?Gz{p_a#-H1y!@NpU! z>2suhDNxavA~{W~G1825=E4rxZ)7lhL^7K=?_v;_aG7ihWmjXH=V-8*{AXk8~gQ2yj7@o)*G4e6qQFaV7#xYWb37x!8 zaEiRU7^&~zxOpPRyZwk_jFU0mqrDiT*?!J3mGga-^ORlNg;mdwnWyQ0X0m{@J2*d+ zE~fKGV|?%g=U)N+kU)#+7^N6RbDS1^Xyv+~icTd(&tQmbjv^Ygb})w~eNhEg=@oCF x1s_|G^uQmZjbCW>E4}kS@c@4#!pC&7fYb~48m?%#`U0DY@d-8W( duration) { + applyLeave = true; + leaveBalance -= duration; + } + return applyLeave; + } + + public int getLeaveBalance() { + return leaveBalance; + } + + public void getEmployeeDetails() { + System.out.println( + "Employee ID: " + id + + "\nEmployee Name: " + name + + "\nEmployee age: " + age + + "\nProject name: " + projectName + + "\nSkills: " + Arrays.toString(skills) + + "\nBonus: " + bonus + + "\nLeave Balance: " + leaveBalance + ); + } +} + +class ContractEmployee extends Employee { + private static int contractDuration = 60; //days + private static double payPerHour; + + ContractEmployee(int id, String name, int age, String projectName, String[] skills, double payPerHour) { + super(id, name, age, projectName, skills); + this.payPerHour = payPerHour; + } + + @Override + public boolean canApplyLeave(int duration) { + if(contractDuration > duration) { + applyLeave = true; + contractDuration += duration; + } + return applyLeave; + } + + public int getRemainingContractDuration() { + return contractDuration; + } + + @Override + public void getEmployeeDetails() { + System.out.println( + "Employee ID: " + id + + "\nEmployee Name: " + name + + "\nEmployee age: " + age + + "\nProject name: " + projectName + + "\nSkills: " + Arrays.toString(skills) + + "\nPay per hour: " + payPerHour + + "\nRemaining contract period days: " + contractDuration + " days" + ); + } +} + +public class EmployeeClient_W3A1_1 { + public static void main(String args[]) { + String emp1Skills[] = {"Java", "Spring", "JS", "Shell scripting"}; + RegularEmployee regEmp1 = new RegularEmployee(12, "anon1", 34, "prism", emp1Skills, 340000, 20000); + System.out.println(regEmp1.canApplyLeave(12)); + System.out.println(regEmp1.getLeaveBalance()); + regEmp1.getEmployeeDetails(); + if(regEmp1.canApplyLeave(5)) { + System.out.println("New leave balance: " + regEmp1.getLeaveBalance()); + } + + System.out.println(); + + String contractEmp1Skills[] = {"Pen testing", "Network Security", "Data analysis"}; + ContractEmployee contractEmp1 = new ContractEmployee(29, "anon2", 29, "ufo", contractEmp1Skills, 10); + if(contractEmp1.canApplyLeave(13)) { + System.out.println("Your new contract period: " + contractEmp1.getRemainingContractDuration() + " days"); + } + contractEmp1.getEmployeeDetails(); + } +} \ No newline at end of file diff --git a/Week 3 Assignment 1/MainClass.class b/Week 3 Assignment 1/MainClass.class new file mode 100644 index 0000000000000000000000000000000000000000..775427708d9dd0e55ed3dd9016489e70cf014055 GIT binary patch literal 1033 zcmZ`%+fEZv6kS8xnbSH7juor|mUt^rftE{YxmawiqNRvqOd6j~+esa4r=*<$NqqM! zjER1MFC~#k)I=l1%Ln)YKKld4eE=Z{&cmE@*4}Haz4tj=zu#;C7{NUsE@M!^5JQ9^ z$}r3@!Z4~}j3LG_&JdTAnFQE3l&1#Rc=}m+CvYsi+q_6R=8Cj)a|-yl_vzzr`Mc%(a4x0`NSM0rz*VB7!b)S zt{^0#?O!6XG8JwIbG6{;m;^7$8HOEMq{z~P?XelzD%}_ znPRc#ShfTYw`vyUdhA+>uTrgr(y}c~vnuA0Q!y{>x3h@u{p&d_f&I0luyEWr9NICA z#tCvYs$~^-u|VXKQ?0I+xXr1KlvA%8mVK}eQdJ`3i;fkElW4&zSL#ID8_0n%%oi4o zA~lc;9UkiJVdyZD{?BcwE2jOZROc%h$12i5LTPbF$IFH&Hf`A4tTZI}oh9nT$knQJ z+r}OoI-;5*eb9qT^p?ff0!dsl{d?)uMXN-sr*93?YuZTYqrbcjZorFvglR8Qf6_^z z^%Z-Imb^=I>3O&2*7F|CqvvH!*7J&{=-G9!yyk6FHJ^6O54C@d-dNa=)+SDdo6xqy zrw)X3yMlfpcv=Xy3&9Q{ct%gS!&)HVZsM$9LZy=5p&RcJ#RtUk5mWet1$@R5Ht_^oc#1E0hOc;zZ+MCC)b3T{v|!*5 DsgmQ* literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/RegularEmployee.class b/Week 3 Assignment 1/RegularEmployee.class new file mode 100644 index 0000000000000000000000000000000000000000..4165ab9123a2a5944ef0b3eafe462094cf8738a2 GIT binary patch literal 1604 zcmbVMZF3S=6n-u&u-U8)CD@3;l&Ypi)#RYDd)n#GG;*`J8 z-_ei#(xk;sJL3=VM|Jufmb_Fl{opX1bM`qe_q^Tv@}Iw60Jwstg)H8mz$`ux@}ZEA zgj|`x$M__HPc0;H)x>AQuZdrb3#PKj>KQZ?wheskd%=+U@Uxm?&%Fjm_Q9yhh_`g)_+s_E`sr{)nkQFr|1PRHx7 zOI|e0R|?+}t_Dv1=}o6IGMj4ZU}$lWc{E>O?kVEeTOF_6*Sf3&$Mu*tRXoyMtb3#M zt!lg1t?M;cPMqGiU-ew=2bZNT8)tFL#@oo*ct^+?%-Pt)?F8=FsN$}|%&YaU^jxo@ zyW%>}g!iN7D&=boa1UEH?n{(=c%YE94)hyNON+%ru+FJN+-VNsN0<|Mv)g{6>p{*R zS$`+i6IS)9>v=ok{ylz3;71#e;jmU~MJ5&=T$AI5&B~3sCHQ016KL4b*k=4Yy4mBr z_mg6TLviu-hb?`#oFn5@%sP3bbN!t_w>Y78FHkrcZj0M4ZE~Rku9bFL3tT%!(0)VV zQht1&3S-b{5Oj>Vbjosr{>R3Uj&gCvOz0ow40s2V>;SZj#z2V{0(%>II8(f9)~ksEt3ioYZFE0vKW zq0aFQI}e*knnCi^MxoM-RzPtSGfS?hFc?SN!%X5s>>}w!%#%tbKQlYA+}=g}ZzLW* zhnbofz~aG^1K6n(q5K9}YATeIg1;HcDZ!^hIsGS2%I8}oyNC`jlR7mN4LS^v8Q}D* oT`6IeuYV0C-omReap@qhxnWj7Jeg)24*kL!W~jZ)tRpD>3+dTtIsgCw literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/SalariedAccount.class b/Week 3 Assignment 1/SalariedAccount.class new file mode 100644 index 0000000000000000000000000000000000000000..8033ef8c2213ac1b10d6ef1f689e323b30b964b3 GIT binary patch literal 1615 zcmZ`)ZF3V<6n<`#bhq10+J?5YS}@iZl9W<;QGr%U+E}T!5eZZQ1#dTZ+QrRoX0w6e zqd&q?M+X=`=s3d&B29gn@dx;$9M9R^rj?Wrx%cGUbIyIvbDrG%^Y5R312_d~U>ws1 z#&E2UmKnC*VCy(9C;D&_r!>52K*w7;-sb%@$DGk|miJlq%;|WCzns%C&--~DCEgeK zaM3^+?`l}m@ScVX0-3t)maGNol5cc2%WSUswKRx$cn1ykiHOHDBIYYPlB0<;xtNt_ITj zVpTTcsL>s?(zVp8wB3L{swR-g7p@5mw;DAWsES8nN|hCzI!%H6K3zNqUwT6YCCloh zQeA?f&sk2)h*9-gzNMCI2AyFDi;iqIk1epg z@ewWw9DJ73g_iBql+XDEfl-4H@Gx?l9=mg{tgEv*6IEO`aRmfus1xFbB=YIU_=H2Q z3XFA5EnmsN_S_uP!a>(KJ7X;PMBrwp@OAbYMyXcwRkO))pJL6#XIRs4!^BN|P9v*I zNBXv^#o(w+Ro*5+G&>GcMz}Av97VJn#3c!fM->i;gk?1MxQz7>MTNQ($ad>RK$8(7 zfdl)@OJHyhk$0Pcs?$AQi$pvURkOXBi=^3rl&fTYmV_-E4ds$vruUIVp$kGh7fKum zb#Wn_M+A5{-yKhZ{b67v?Xc@*frTm>y4# zrN*^wh+oMgC>xa3L+iIl<2&-ajLA4}9w{W~WVF~u&l4oRzK3*??IRm)Bssq)%+G{T z_tB3B7{L#Cg-#L>BUI*9ycQQbjU-vXKwRvb?~zJ8Og?<3%8yj#CqnY`PL(tTypAJr zl_|QCA@vuhwvZ|w-9qnf9}$jU2=ycC=`p3`QHT@2WJHv>`UKiv(64TzFKe`^P8%j| z*>q%Q+8D?VM)nZEO2c4vGe*gdg literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/SavingsAccount.class b/Week 3 Assignment 1/SavingsAccount.class new file mode 100644 index 0000000000000000000000000000000000000000..3274ad4b3320f4707652cc326fca65ffc324f899 GIT binary patch literal 1683 zcmZ`)+fo}x5Iutg604N}A!De3BRdx)VXR!7#4*G{LIEolvW*-Pg9#q3#$xT&u1Z?j zmB+m050ZyezQ8ZRWx2|!%8TFf1^Jp(x_8%tSfnUsdV9Ki&YV6o`s<&Ue*(CSLk;Kf z@i-Q6S)<_-wmxO+Gq$eq@cB5dVkLrA4deJCifcT7$uVnD6nHMOXFZA%e|#0i2G5&O zT<5vWi(hNFfy&t0-w$b5U~KKxPo5FMRs_`uZVJSonC@YtBcD{vmgx$Jl0c$m+6AL1 ztwPJ`+2kBsHEq+qCQ!{(9?HiuZ%MnEuelx5ZmyJvUBjNz-movbBM@G98cJZIV%ncfj;vec(O=`*=-CFvWl9_#ues8Av?bd?)XZz7(l*qVG;NpuRYM?@$?giIdhLdE zRn?&|rAmrct*$`klvDfUX8FYdntXs0%y~H%> zcn9z5NaMVYTez*`0$bb2=&0e2j&HCN!M8fT!(D;1ZxUPVnN~w}xJX`LMk5&9jr5_z z?zAmi>S|iYF7|ZX!@j`OAjI~V@;)3L6Wl*TCqbc9u5lE z*{f-VMx&#;U5+!bucLwe2$YToXi`#5J|+!x18f4ZqO>0kzI5qh-tJk7c-M$bQWf{g z>kvsz>z;6Fbq_(6P9~5X7K}hd`e+2EPidIIEv&bXkC)7 zlC2d|wrsbRO@diIMHAT}2tiLMal#YEb*~pb;8bQfo&sZDps#K3)MbJBOnEr=xb~En zvL3XlL|r1~Gj}KGVJ?H#kRDyfzl_9-$H0HjNxZfB)Rs*|oOaF~(&z%cNCIzTgx(EO zEWHyN>y@7k@{^Ehe2>0zh|(XB$Sut;&xL14=OQm4ekYH>`!s4)0oXtso8(zUCdk{w zC_=PyZt(~szx;~XTpyt$gn#}G@f_QW%|1rC&WKkh;YHuTG%AFxiY%>!AQq@x4ogAN zD+rSXOa#TK?r7*~_~{!}wh^Nn7pDssREbl-MJxwZmS{_c7RxO?$5`&-b3~5MU+{=Nz$ETto^ELdb^7fvutt}#i~}O(0Y!W;fRpv82jVHrJ;O)}Z#_f! SxSZda0`;>~}N`A2@S*hAvck-2P35$Ns#B|S&w^A!N0tkWJ0D@4I2m$FK1PF=x9pgWZ CnJ0h% literal 0 HcmV?d00001 From e41a59e3e0d7f5751611a063545db4fd550189ea Mon Sep 17 00:00:00 2001 From: phaneesh Date: Thu, 20 Jun 2019 21:45:29 +0530 Subject: [PATCH 05/10] Week 3 assignment 2 --- Week 3 Assignment 2/Cart.class | Bin 0 -> 606 bytes Week 3 Assignment 2/Catalogue.class | Bin 0 -> 696 bytes Week 3 Assignment 2/Category.class | Bin 0 -> 420 bytes Week 3 Assignment 2/Checkout.class | Bin 0 -> 1252 bytes Week 3 Assignment 2/EcommerceClient.class | Bin 0 -> 1699 bytes Week 3 Assignment 2/EcommerceClient.java | 234 ++++++++++++++++++++++ Week 3 Assignment 2/Fashion.class | Bin 0 -> 399 bytes Week 3 Assignment 2/Item.class | Bin 0 -> 471 bytes Week 3 Assignment 2/Mobile.class | Bin 0 -> 398 bytes Week 3 Assignment 2/Payment.class | Bin 0 -> 1812 bytes Week 3 Assignment 2/PaymentTypes.class | Bin 0 -> 213 bytes Week 3 Assignment 2/Seller.class | Bin 0 -> 738 bytes Week 3 Assignment 2/User.class | Bin 0 -> 514 bytes 13 files changed, 234 insertions(+) create mode 100644 Week 3 Assignment 2/Cart.class create mode 100644 Week 3 Assignment 2/Catalogue.class create mode 100644 Week 3 Assignment 2/Category.class create mode 100644 Week 3 Assignment 2/Checkout.class create mode 100644 Week 3 Assignment 2/EcommerceClient.class create mode 100644 Week 3 Assignment 2/EcommerceClient.java create mode 100644 Week 3 Assignment 2/Fashion.class create mode 100644 Week 3 Assignment 2/Item.class create mode 100644 Week 3 Assignment 2/Mobile.class create mode 100644 Week 3 Assignment 2/Payment.class create mode 100644 Week 3 Assignment 2/PaymentTypes.class create mode 100644 Week 3 Assignment 2/Seller.class create mode 100644 Week 3 Assignment 2/User.class diff --git a/Week 3 Assignment 2/Cart.class b/Week 3 Assignment 2/Cart.class new file mode 100644 index 0000000000000000000000000000000000000000..cde57a87587d3c8c7ede9177f019967b2d87f9d0 GIT binary patch literal 606 zcmZuuTT22#7(JuwdfU>}?55G98s$rGNiR|$ND*D$SDkFc-KA{|`cFL+BtZ}TfPPeT zW{U*v<$ODbbNOcW^XvTszyY>1u(6&-0viT44QwS*NunxXP3~nVQ0R`_2e&zP{bBR0 zH3^=q>2U?2r@UFFNuiPw|irP~{msnr%U zJByUbNDig$MB$}ceNiHirQrN;85VOLW4el#&s+qPurE)PsVyD%1J9E@x5rBQdf!~k zfrBLnNu(U4k#Uek%B=2&S|C4vb?oqkY`$F_tU-!j!q}ooCuf2TBZ##UCZ!*@9KO4|8YEJ$KH%XZGi>FW&%cVcS3nH&iTZxT#^K*!j?5959f> zs)jWUw~C#Q-!n|bx&c$NZ_9W`$6ef$JKI1F8!GCA;uA0MlBa~cT{|Es-SAKl=K5YB z_R`5vM6cbU&xkT{y@0T2zv&;lZ{3#f2IH2KL|!o7k%fj6rqM{e^dz~|braVQ$Ej#a zvWY4dSZX&MX6b^Lh)J7kj=U&NR^>@j?h~@iCgD;nMqzN6rMS=$zAqv|`CNK`cq~SV zi3XY~S|%Q#ZDJD-Rcx7fgvSK^PZNZi-MiTKMdXE?M2}gm$34aWk9($>jr&(8&bye& zY+#rsgoU$Py|DF)y-C<1;ZAl4=2#^1(r%arOk=lug!ycqf4KzpL{|Fjwqo~c2Ux>A zzq$N!AZaD9i+ozjb@soGHn#Z* Op7CEwSmIm`*M9@G@RB_M literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 2/Category.class b/Week 3 Assignment 2/Category.class new file mode 100644 index 0000000000000000000000000000000000000000..4d98f9496a0e6237804c5b6589c8b333df375a31 GIT binary patch literal 420 zcmZWl%SyvQ6g{_zO_Rp9)>j`2F594X<4$qYQYe%vRJxz0Lzt2Wq>12Xxd?&_KfsR? z?*zd`H}`qYxo774=kp7|9WEVMIJHs5nGWYVbad!i=vn9!sw$JwY(tClU1vH?E@o74aFwjm(nc@<6QCt$2 z2TVvbCcf~fCKeJO2)_E0#Hi;^2O>z!OaH`Tpzc5`b2ml@LUO4_nd5e^IVB zi8#t-vxpWhTP3m_izJITO$ z89WntL(>U&Gk6P=dVWC7l3JA-Q>WBuMm0yGLss4}M`Faaa+aE5D2p4WVRbUNLg9-H z?nLeixdc*%sSgygX+1xzrZaR?sg3H|c&=b2)V$^7ltPzNT#a$hiXltY#{1O?$3Y&^ zZQi+3P356fe=cog^jMgxlS8SbIyq|OOj|7{?uE5_YeFfm#KN1^Eoo{-)rL#OSCF3# zog~x)1($|$g}kOGDH%hsN6TfiI_Zgwp_^7CpM{KC)XCU}?J{;@r;O9+qEVCzlyQb@ zZeD|o1iED$z(E;1IPnk;%cw?;j1cM=M5hZ*sh80Mg;SC={)96wK2jPHQJr~ENuj?x z8%&Ssnnf?d2|OnQAIJHEYFdVM!+scgTQA)?U9R_cUKD$2QG&E{ZV0?FLIN+@mQ=7U zsaKLB9qJzpy9q_%A_N4KMKHxxgrN9~aDApLhCTH669Jf_z}MizP28tc`%2DCB%6n< zZ(JRHySI}Bwlkzjj!xbw!E-jgXpp#>cI1Kv&LX8-^I literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 2/EcommerceClient.class b/Week 3 Assignment 2/EcommerceClient.class new file mode 100644 index 0000000000000000000000000000000000000000..f7eae510a0bcc4a313752500e9353835147f38a6 GIT binary patch literal 1699 zcma)7&2QXP5dXdGuI+W5ChKlfEYftVma_S3l9H0JDP{A~v?=)_o3@zngy2%BKuCc2l<2V%9H^M*O~|%E2p`^?nK$!$aXWHjN7gh>f!h3wm(gfu$ z=8~~lG@W3s6j&}fM$;4AEa%*^mp3OZj*&c*cZ)@n^l{rF-{Txf!4QTij~RD4bdqP? zb<0Q%4D|OiD3>kI4^lHJD=>@P)1sT^9CO|-`>CPSyyuecn|aqMY&kKAlZL+<<{*#R zMt(izm#yF*sL2qDK|1T1o2f;M(%J^tJ`!@KZJQn;`Jphtu(vK5g@R}L{s7NpjiGgi ziMi!9Gao2ehfVK(!RO(zGHn#B@O?X!Q*3zTIfNo*F}`Z%*WEJd4qOo>1+RcY59}b< zIUXxpc7cO7FS>zYr%IlcH!~>(J}9<~4KBT^;5BTDcwNC2yg~WT*K5KrdsD$%80H5= zcFO~WVCYOw?XK%?OIXwY>3g2nKhBApqT=}v_D-F#uy@kwhMTtRjp;PFCh}W^aT2$1 zW$H<;hFA?X$!+>{F?BZa%do$GhvoLoQ_}`St7#NRsPT+a$#e<~y^UFHcXmT!_Z5Ny zn^(*rEC%7_sf}oWCK%eO@Bbr63fwvlO+$LOBf;(qOMicwR7xti6WBCZ`~NLXK7i@z z?PdyzNYFrDvVzrFGZ-_Rb(&Kg#^dxQ<4**PdSaN?CrCR;JEJ|;RR#Ny1cnT)LTLOP zag5*;$>how=-Z{x*}WQ?^wukCM2#j9t3sUSh6LVKB{iOeOqQ7%6tdh^o7KHZv{aFp z4K3`Ds;c{vNRlNJt)Wd%G~HDXs1GHfRq=2prp3gYXxAg%IX&8w(__6kUC^Sr3J%uL zp(i4@)kA73iNjSK$p|$Z)ioj3UBx3Av93gWxFT&Sy assign items to seller[2] -> user selects items and adds to cart[3] -> checkout/payment[4] + */ + Mobile nokia1100 = new Mobile(123, "Nokia 1100", "first M item", 500); //[1] + Mobile onePlus = new Mobile(156, "OnePlus 7 Pro", "second M item", 600); //[1] + Fashion suit = new Fashion(245, "Black suit", "first F item", 300); //[1] + Fashion tie = new Fashion(287, "Grey Tie", "second F item", 100); //[1] + + Seller seller1 = new Seller(757, "seller1", "selleraddress1", 7881992310L); + seller1.sellItems(nokia1100, onePlus, suit, tie); //[2] + + User user1 = new User(984, "user1", "useraddress1", 9981998110L); //new user + + //Cart(user's object, quantity, item) + Cart cart1 = new Cart(user1, 2, nokia1100); //[3] + Cart cart2 = new Cart(user1, 1, onePlus); //[3] + Cart cart3 = new Cart(user1, 1, suit); //[3] + + Checkout checkout = new Checkout(); + checkout.checkoutCartItems(cart1, cart2, cart3); //[4] + System.out.println("Total price: " + checkout.getTotalPrice()); //total price + Payment payment = new Payment(checkout); + payment.payWithNetBanking(); //[4] + } +} \ No newline at end of file diff --git a/Week 3 Assignment 2/Fashion.class b/Week 3 Assignment 2/Fashion.class new file mode 100644 index 0000000000000000000000000000000000000000..29bc3c2b61bf2809b425766b6dad4b848127964a GIT binary patch literal 399 zcmZWk%Syvg6r9_1$M8OwuM)|ae zh6F))D0S`8Ux%S2@2>(GB{yny z3pUyoiZCpgC|R%+l(Em)KkLf>3!i37=_gs*RBQ8pbbg-(2E*Wqc_?L-CRwEqYo0eY zD#Qb_A$ftd>3l#qtrR)uDn;J8PN6w976+e#^PB~4Mgai_Rx6arO*iu)wJgey$~A?;TQA_#&DKfsR? zC$+lJ&73=P=A60bJ?ch2p@f( zX7XM@2Pa_@Yh;IfTddBodvx3}ULl^zI9_Sch%LU`R2*!qXL_uH9dq~s?eW)ct;8NX@QC@NvqNDqKn0}zHO2VEF`;ev#CbE zI{uJ;aYkosixL>MozV|Eqy7+of}gDC=0zgH3?J^=)zen zc3}x`a=azaj1ZRbwsdh@o~>}aBh^`sI~;d8-sO0Y;eCb=7(P@GEW1`-C{R)gnBx|N zn=a5Utw6nI*_Jn}pgWdHu8aJpQ}t$sZz~8SodVtH$yl~nsFrfVT{d$?(sUc1ncti@ z%Z+{8iAnSoXl1juVtMN+k+VDn{+LASZYh(lC`fH@Yri18In&;>?6p0c6|-0rWD_!+ zs+$+LEa|cTX5J~41nrYWOW5AnhI!A_FpNtI!ty^+H0`y7;kgYgng1&S}!r=G~`iW5E@oN90vA7%~h=;rAos(EDamj)KEl;!PelQtl>q(7(UYA zqC$)pWm==@)O1u{@EEEZ?%`t%pP;7UJYJwOESXlJar`NzAzG~v-)JLO(Y)zWMf8@g znW}wC%2zb^Z^BxZ?S!!A5%u1<%vt;*)Jjua!@>GJS)j zA4Z(y1wc8D061yCj_*JThaSV1_3M5k8_)wrHmC=Utg5R6x(luj#WEb7LIQ|2AvO5Sbj7$dx15YM{{z)~WMuPV-Fc^rar-2`7I6a7OL3B7pUVtcJLK;F-q2_;d_cZU<_jn2?ly2E|OFf;4hq{ ztc>GQGdGweU{d332dkkbt5bEH)}N*SCN)V(futm#bKpmu!DG@)92x7mL$Q7$te*+% i@{zHkhhqIgSich1AvC#~L*S;_pS^5mZhrPjn5_gFlt zn6^rjz;qKASw^e_ttdB(R6Zq_9b}!cJk=%L1;&l*YndnhK1wMzJwU+Xfq-rE7})#> QbX)dXIt@A5=WAi`10pFg;{X5v literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 2/Seller.class b/Week 3 Assignment 2/Seller.class new file mode 100644 index 0000000000000000000000000000000000000000..da60e842536982fcfebaad9298fa7c97223b3813 GIT binary patch literal 738 zcmZuu%Wl(95Ir{!Cr+KTv>`xCOL->-+6}BIg%Voisw#^hHmn@yDsttA*GRgFelHD>Mrit+b^GX{(jF?u(3f5kjgl1o1(DyD%UCbO0-YL|E>4dYF zPr^i>&f~Gp-umN+8CwQ<cs5G3pwaw(?JJI4wkXv;F6eCtT}MdcF@8S?;92Grm*twqhgzX!{%?Z z$Rw9uMH&mFXo1u%kkSQGomc}`!e!bXqa#$Q0j#^H% sUF+Cb^llLqt7Y3KdgW}Z$a=i`IyULc?t=2wtAELt)F&)%u~@;4UvG$o&Hw-a literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 2/User.class b/Week 3 Assignment 2/User.class new file mode 100644 index 0000000000000000000000000000000000000000..d949839af15124f216280d7d9ac854225e6965ae GIT binary patch literal 514 zcmZWl%TB^j5Iwgolt&d5L;+t*+Nf;YX-o`C0wK8Ip^2-~-jI?$l5+98G_f&p;RpCp z#<`8b1)DQ>&YU@OXTE(F~vC-ll8xk&%Y+;*5OM8a$|Hcoq1$P94+A^m&rF-dgP7R7|rI53r2bk4Npjc-KRO>u}X4SL=nK!D^9i=8!j%dc1CQQg} jiV7Z4#}g?ksQ!5#QDmggSnp6@*X`Mqd?wr@PC@M#${u1Q literal 0 HcmV?d00001 From 2f5662081eb0ff6c99ac7f55a8e67eca004ef784 Mon Sep 17 00:00:00 2001 From: phaneesh Date: Thu, 20 Jun 2019 22:36:33 +0530 Subject: [PATCH 06/10] seperated main class in a separate file --- Week 3 Assignment 2/Ecommerce.java | 206 ++++++++++++++++++++++ Week 3 Assignment 2/EcommerceClient.class | Bin 1699 -> 1617 bytes Week 3 Assignment 2/EcommerceClient.java | 206 ---------------------- 3 files changed, 206 insertions(+), 206 deletions(-) create mode 100644 Week 3 Assignment 2/Ecommerce.java diff --git a/Week 3 Assignment 2/Ecommerce.java b/Week 3 Assignment 2/Ecommerce.java new file mode 100644 index 0000000..f29249b --- /dev/null +++ b/Week 3 Assignment 2/Ecommerce.java @@ -0,0 +1,206 @@ +import java.util.Collections; +import java.util.Arrays; + +abstract class Item { + public int itemId; + public String itemName; + public String itemDesc; + public double itemPrice; + + public Item(int itemId, String itemName, String itemDesc, double itemPrice) { + this.itemId = itemId; + this.itemName = itemName; + this.itemDesc = itemDesc; + this.itemPrice = itemPrice; + } + abstract int getItem(); + abstract double getPrice(); +} + +class Mobile extends Item { + public Mobile(int itemId, String itemName, String itemDesc, double itemPrice) { + super(itemId, itemName, itemDesc, itemPrice); + } + + @Override + public int getItem() { + return this.itemId; + } + + @Override + public double getPrice() { + return this.itemPrice; + } +} + +class Fashion extends Item { + public Fashion(int itemId, String itemName, String itemDesc, double itemPrice) { + super(itemId, itemName, itemDesc, itemPrice); + } + + @Override + public int getItem() { + return this.itemId; + } + + @Override + public double getPrice() { + return this.itemPrice; + } +} + +class Seller { + private static int itemCount = 0; + private Object[] items; + + private int sellerId; + private String sellerName; + private String sellerAddress; + private long sellerContactDetails; + + public Seller(int sellerId, String sellerName, String sellerAddress, long sellerContactDetails) { + this.sellerId = sellerId; + this.sellerName = sellerName; + this.sellerAddress = sellerAddress; + this.sellerContactDetails = sellerContactDetails; + } + + public void sellItems(Object ...obj) { + this.items = obj; + itemCount = items.length; + } + public int getItemCount() { + return items.length; + } +} + +class User { + private int userId; + private String userName; + private String userAddress; + private long userContactDetails; + + public User(int userId, String userName, String userAddress, long userContactDetails) { + this.userId = userId; + this.userName = userName; + this.userAddress = userAddress; + this.userContactDetails = userContactDetails; + } + + public String getUserName() { + return this.userName; + } +} + +class Cart { + public Object user; + public int quantity; + public Object item; + + public Cart() {}; + + public Cart(Object user, int quantity, Object item) { + this.user = user; + this.quantity = quantity; + this.item = item; + } + public Object getItem() { + return this.item; + } + public int getQuantity() { + return this.quantity; + } + public Object getUser() { + return this.user; + } +} + +class Checkout extends Cart { + private int noOfItems = 0; + private double price; + private String userName; + private double total = 0; + public void checkoutCartItems(Cart ...carts) { + for(int i = 0; i < carts.length; i++) { + if(carts[i].getItem() instanceof Mobile) { + Mobile mob = (Mobile)carts[i].getItem(); + User user = (User)carts[i].getUser(); + this.noOfItems = carts[i].getQuantity(); + this.price = getItemPrice(mob); + this.userName = getUserName(user); + calacTotal(); + } + else if(carts[i].getItem() instanceof Fashion) { + Fashion fash = (Fashion)carts[i].getItem(); + User user = (User)carts[i].getUser(); + this.noOfItems = carts[i].getQuantity(); + this.price = getItemPrice(fash); + this.userName = getUserName(user); + calacTotal(); + } + } + } + + private double getItemPrice(Mobile mobile) { + return mobile.getPrice(); + } + + private double getItemPrice(Fashion fashion) { + return fashion.getPrice(); + } + + private String getUserName(User user) { + return user.getUserName(); + } + private void calacTotal() { + total = total + (price * noOfItems); + } + public double getTotalPrice() { + return total; + } +} + +interface PaymentTypes { + void payWithDebit(); + void payWithCredit(); + void payWithNetBanking(); + void payWithWallet(); +} + +class Payment extends Checkout implements PaymentTypes { + private double price; + private int orderId; + + public Payment(Checkout price) { + //generating random numbers + String[] arr = {"1","2","3","4","5","6","7","8","9","0"}; + Collections.shuffle(Arrays.asList(arr)); + StringBuilder stringBuilder = new StringBuilder(); + for(String letter: arr) { + stringBuilder.append(letter); + } + orderId = Integer.parseInt(stringBuilder.toString().substring(0, 6)); + System.out.println("Order ID: " + orderId); + this.price = price.getTotalPrice(); + } + + @Override + public void payWithDebit() { + System.out.println("Paid " + this.price + " using Debit card"); + } + + @Override + public void payWithCredit() { + System.out.println("Paid " + this.price + " using Credit card"); + } + + @Override + public void payWithNetBanking() { + System.out.println("Paid " + this.price + " using Net banking"); + } + + @Override + public void payWithWallet() { + System.out.println("Paid " + this.price + " using Wallet"); + } +} \ No newline at end of file diff --git a/Week 3 Assignment 2/EcommerceClient.class b/Week 3 Assignment 2/EcommerceClient.class index f7eae510a0bcc4a313752500e9353835147f38a6..8a0fb4b9ea18d320e12ddff859510fece4e3c4bf 100644 GIT binary patch delta 502 zcmXAmyHAus6vcn@k^N?v3_%e^1&NKe z=8OIT+SnOG0iiI|CMH-=*xTA;h{ikX6zAM~&bha^^P%LsTmSlZ`wP&-nx%@2=8_>Y zTn?l4NOZ6Sv>MtBSHkG!PC?VO8?G9zh0(%)#o~Ob!*D%}h6*7xorW8Ru7vbz@7u>E z%Q0?hx;^)3dJSWJhJNn{{lA-PEH&OAu+%cBxn-#%FyfP1I*86z2rPf~Y8_h4WIUH_8&Fs?S@k91_$V#&B8! u&GIQ7a`0hF$WzK|%6Q8W-c!yeIqen|>~fr6oM4}m{Gn17UXUFD7ykiR@J&kq delta 598 zcmYL{%TH557{z~c3!UNS5+NpTL^h}(F(FZ~#RuL3D&nIRMMV@XwE_j&3Z)7@nz+%e zY5WIt0GcVd z)DY3M8#)Y~LBHUO4=xVd4BHJmg8rq4B~R03*lFkv`V)(ei)W{H8FmN#zS0nyJ%+u8 zXt~_g{NtN>mu18>`z-fp_8XE1481mYdVV$6y42eIpvy`QX%4%rCSswlf+O^6j=D4w zF&wizV3Xrkov;vh86=@O>9UTbg;UlU(hOgH+r6|h8=oFergPD3ZX}adlr?k~SE+_T zh;T8c>V-#&GwSm45Gh4fDxQxwjm6VLP0_(rGLiEbWvp1^)Js0DFdf6m#As$p{4^O& z*5fo2#Q|sS`bor`BJVND8IQ9}Yi2yoabBTgiyb^dT=2L^*aqR*Ip?=(+aT|6PXHxx zSg=)YD}8 zuQy!b9oKlzbv|&5kIeCjr+j9CFZ|>yfA}VAx6o$S%BDJDM_Aus&0Sjlcd$PLzDt({ L8QCg2;NbrQx5{qZ diff --git a/Week 3 Assignment 2/EcommerceClient.java b/Week 3 Assignment 2/EcommerceClient.java index ee40ba1..53eb17c 100644 --- a/Week 3 Assignment 2/EcommerceClient.java +++ b/Week 3 Assignment 2/EcommerceClient.java @@ -1,209 +1,3 @@ -import java.util.Collections; -import java.util.Arrays; - -abstract class Item { - public int itemId; - public String itemName; - public String itemDesc; - public double itemPrice; - - public Item(int itemId, String itemName, String itemDesc, double itemPrice) { - this.itemId = itemId; - this.itemName = itemName; - this.itemDesc = itemDesc; - this.itemPrice = itemPrice; - } - abstract int getItem(); - abstract double getPrice(); -} - -class Mobile extends Item { - public Mobile(int itemId, String itemName, String itemDesc, double itemPrice) { - super(itemId, itemName, itemDesc, itemPrice); - } - - @Override - public int getItem() { - return this.itemId; - } - - @Override - public double getPrice() { - return this.itemPrice; - } -} - -class Fashion extends Item { - public Fashion(int itemId, String itemName, String itemDesc, double itemPrice) { - super(itemId, itemName, itemDesc, itemPrice); - } - - @Override - public int getItem() { - return this.itemId; - } - - @Override - public double getPrice() { - return this.itemPrice; - } -} - -class Seller { - private static int itemCount = 0; - private Object[] items; - - private int sellerId; - private String sellerName; - private String sellerAddress; - private long sellerContactDetails; - - public Seller(int sellerId, String sellerName, String sellerAddress, long sellerContactDetails) { - this.sellerId = sellerId; - this.sellerName = sellerName; - this.sellerAddress = sellerAddress; - this.sellerContactDetails = sellerContactDetails; - } - - public void sellItems(Object ...obj) { - this.items = obj; - itemCount = items.length; - } - public int getItemCount() { - return items.length; - } -} - -class User { - private int userId; - private String userName; - private String userAddress; - private long userContactDetails; - - public User(int userId, String userName, String userAddress, long userContactDetails) { - this.userId = userId; - this.userName = userName; - this.userAddress = userAddress; - this.userContactDetails = userContactDetails; - } - - public String getUserName() { - return this.userName; - } -} - -class Cart { - public Object user; - public int quantity; - public Object item; - - public Cart() {}; - - public Cart(Object user, int quantity, Object item) { - this.user = user; - this.quantity = quantity; - this.item = item; - } - public Object getItem() { - return this.item; - } - public int getQuantity() { - return this.quantity; - } - public Object getUser() { - return this.user; - } -} - -class Checkout extends Cart { - private int noOfItems = 0; - private double price; - private String userName; - private double total = 0; - public void checkoutCartItems(Cart ...carts) { - for(int i = 0; i < carts.length; i++) { - if(carts[i].getItem() instanceof Mobile) { - Mobile mob = (Mobile)carts[i].getItem(); - User user = (User)carts[i].getUser(); - this.noOfItems = carts[i].getQuantity(); - this.price = getItemPrice(mob); - this.userName = getUserName(user); - calacTotal(); - } - else if(carts[i].getItem() instanceof Fashion) { - Fashion fash = (Fashion)carts[i].getItem(); - User user = (User)carts[i].getUser(); - this.noOfItems = carts[i].getQuantity(); - this.price = getItemPrice(fash); - this.userName = getUserName(user); - calacTotal(); - } - } - } - - private double getItemPrice(Mobile mobile) { - return mobile.getPrice(); - } - - private double getItemPrice(Fashion fashion) { - return fashion.getPrice(); - } - - private String getUserName(User user) { - return user.getUserName(); - } - private void calacTotal() { - total = total + (price * noOfItems); - } - public double getTotalPrice() { - return total; - } -} - -interface PaymentTypes { - void payWithDebit(); - void payWithCredit(); - void payWithNetBanking(); - void payWithWallet(); -} - -class Payment extends Checkout implements PaymentTypes { - private double price; - private int orderId; - - public Payment(Checkout price) { - String[] arr = {"1","2","3","4","5","6","7","8","9","0"}; - Collections.shuffle(Arrays.asList(arr)); - StringBuilder stringBuilder = new StringBuilder(); - for(String letter: arr) { - stringBuilder.append(letter); - } - orderId = Integer.parseInt(stringBuilder.toString().substring(0, 6)); - System.out.println("Order ID: " + orderId); - this.price = price.getTotalPrice(); - } - - @Override - public void payWithDebit() { - System.out.println("Paid " + this.price + " using Debit card"); - } - - @Override - public void payWithCredit() { - System.out.println("Paid " + this.price + " using Credit card"); - } - - @Override - public void payWithNetBanking() { - System.out.println("Paid " + this.price + " using Net banking"); - } - - @Override - public void payWithWallet() { - System.out.println("Paid " + this.price + " using Wallet"); - } -} - public class EcommerceClient { public static void main(String args[]) { /** From 2b9a76010c1a0aa420554b5de76348a29278b3d1 Mon Sep 17 00:00:00 2001 From: phaneesh Date: Fri, 21 Jun 2019 21:09:31 +0530 Subject: [PATCH 07/10] Week 3 assignment 3 --- Week 3 Assignment 3/SelfDrive.java | 24 +++++ Week 3 Assignment 3/SelfDriveClient.java | 6 ++ Week 3 Assignment 3/Vehicle.java | 129 +++++++++++++++++++++++ Week 3 Assignment 3/VehicleClient.java | 14 +++ 4 files changed, 173 insertions(+) create mode 100644 Week 3 Assignment 3/SelfDrive.java create mode 100644 Week 3 Assignment 3/SelfDriveClient.java create mode 100644 Week 3 Assignment 3/Vehicle.java create mode 100644 Week 3 Assignment 3/VehicleClient.java diff --git a/Week 3 Assignment 3/SelfDrive.java b/Week 3 Assignment 3/SelfDrive.java new file mode 100644 index 0000000..50c4eeb --- /dev/null +++ b/Week 3 Assignment 3/SelfDrive.java @@ -0,0 +1,24 @@ +interface selfDriveVehicles { + void drive(int option); +} + +class VehicleType implements selfDriveVehicles { + + private String source; + private String destination; + public VehicleType(String source, String destination) { + this.source = source; + this.destination = destination; + } + + @Override + public void drive(int option) { + if(option == 1) { + System.out.println("You have chosen WagonR to drive from " + this.source + " to " + this.destination); + } + else if(option == 2) { + System.out.println("You have chosen BMW to drive from " + this.source + " to " + this.destination); + } + } + +} \ No newline at end of file diff --git a/Week 3 Assignment 3/SelfDriveClient.java b/Week 3 Assignment 3/SelfDriveClient.java new file mode 100644 index 0000000..6f617ce --- /dev/null +++ b/Week 3 Assignment 3/SelfDriveClient.java @@ -0,0 +1,6 @@ +public class SelfDriveClient { + public static void main(String args[]) { + VehicleType efficiency = new VehicleType("Silk Board", "Electronic City"); + efficiency.drive(1); + } +} \ No newline at end of file diff --git a/Week 3 Assignment 3/Vehicle.java b/Week 3 Assignment 3/Vehicle.java new file mode 100644 index 0000000..2d6a334 --- /dev/null +++ b/Week 3 Assignment 3/Vehicle.java @@ -0,0 +1,129 @@ +abstract class Vehicle { + + public String vehicleRegNo; + public int vehicleMake; + public String vehicleModel; + public String vehicleColor; + + public Vehicle(String vehicleRegNo, int vehicleMake, String vehicleModel, String vehicleColor) { + this.vehicleRegNo = vehicleRegNo; + this.vehicleMake = vehicleMake; + this.vehicleModel = vehicleModel; + this.vehicleColor = vehicleColor; + } + +} + +abstract class Goods extends Vehicle { + + public Goods(String vehicleRegNo, int vehicleMake, String vehicleModel, String vehicleColor) { + super(vehicleRegNo, vehicleMake, vehicleModel, vehicleColor); + } + + abstract public void vehicleSpecialty(); + abstract public void setGoodsWeight(double goodsWeight); +} + +abstract class Passenger extends Vehicle { + + private int noOfPassengers; + public Passenger(String vehicleRegNo, int vehicleMake, String vehicleModel, String vehicleColor, int noOfPassengers) { + super(vehicleRegNo, vehicleMake, vehicleModel, vehicleColor); + this.noOfPassengers = noOfPassengers; + } + abstract public void vehicleSpecialty(); + abstract public void setPassengers(int num); + +} + +class GoodVehicle extends Goods { + + private double goodsWeight = 500; //in kilograms + public GoodVehicle(String vehicleRegNo, int vehicleMake, String vehicleModel, String vehicleColor, double goodsWeight) { + super(vehicleRegNo, vehicleMake, vehicleModel, vehicleColor); + this.goodsWeight = goodsWeight; + } + + @Override + public void vehicleSpecialty() { + System.out.println("Can carry goods over " + this.goodsWeight + " KGs"); + } + + @Override + public void setGoodsWeight(double goodsWeight) { + this.goodsWeight = goodsWeight; + } + +} + +class PassengerVehicle extends Passenger { + + private int noOfPassengers = 4; + public PassengerVehicle(String vehicleRegNo, int vehicleMake, String vehicleModel, String vehicleColor, int noOfPassengers) { + super(vehicleRegNo, vehicleMake, vehicleModel, vehicleColor, noOfPassengers); + this.noOfPassengers = noOfPassengers; + } + + @Override + public void vehicleSpecialty() { + System.out.println("Passenger vehicle can carry " + this.noOfPassengers + " passengers"); + } + + @Override + public void setPassengers(int noOfPassengers) { + if(noOfPassengers <= 6 ) { + this.noOfPassengers = noOfPassengers; + } + else System.out.println("Passenger cars cannot carry more than 6 passengers"); + } + +} + +class LuxuryVehicle extends Passenger { + + private int noOfPassengers = 2; + public LuxuryVehicle(String vehicleRegNo, int vehicleMake, String vehicleModel, String vehicleColor, int noOfPassengers) { + super(vehicleRegNo, vehicleMake, vehicleModel, vehicleColor, noOfPassengers); + this.noOfPassengers = noOfPassengers; + } + + @Override + public void vehicleSpecialty() { + System.out.println("Luxury vehicle can carry " + this.noOfPassengers + " passengers"); + } + + @Override + public void setPassengers(int noOfPassengers) { + if(noOfPassengers <= 2) { + this.noOfPassengers = noOfPassengers; + } + else System.out.println("Luxury cars cannot carry more than 2 passengers"); + } + +} + +class RacingVehicle extends Passenger { + + private final int NO_OF_PASSENGERS = 1; + public RacingVehicle(String vehicleRegNo, int vehicleMake, String vehicleModel, String vehicleColor, + int NO_OF_PASSENGERS) { + super(vehicleRegNo, vehicleMake, vehicleModel, vehicleColor, NO_OF_PASSENGERS); + if(NO_OF_PASSENGERS != 1) { + System.out.println("Racing vehicles cannot carry more than 1 passenger"); + } + + } + + @Override + public void vehicleSpecialty() { + System.out.println("Racong vehicle can carry " + this.NO_OF_PASSENGERS + " passenger"); + } + + @Override + public void setPassengers(int NO_OF_PASSENGERS) { + if(NO_OF_PASSENGERS != 1) { + System.out.println("Racing vehicles cannot carry more than 1 passenger"); + } + } + +} \ No newline at end of file diff --git a/Week 3 Assignment 3/VehicleClient.java b/Week 3 Assignment 3/VehicleClient.java new file mode 100644 index 0000000..5bc4f4f --- /dev/null +++ b/Week 3 Assignment 3/VehicleClient.java @@ -0,0 +1,14 @@ +public class VehicleClient { + public static void main(String args[]) { + Passenger passengerVehicleSwift = new PassengerVehicle("KA 05 ME 8619", 2018, "Swift", "Red", 3); + passengerVehicleSwift.vehicleSpecialty(); + + passengerVehicleSwift.setPassengers(4); + passengerVehicleSwift.vehicleSpecialty(); + + passengerVehicleSwift.setPassengers(7); + + Goods goodsVehicle1 = new GoodVehicle("KA 51 AB 7812", 2014, "Ace", "Grey", 400); + goodsVehicle1.vehicleSpecialty(); + } +} \ No newline at end of file From 28c431c2d047ddeb485ad8b5c82663f1f0482e65 Mon Sep 17 00:00:00 2001 From: phaneesh Date: Sat, 6 Jul 2019 20:48:07 +0530 Subject: [PATCH 08/10] w4a1 --- Week 4 Assignment 1/.classpath | 6 + Week 4 Assignment 1/.gitignore | 1 + Week 4 Assignment 1/.project | 17 +++ .../exceptions/InvalidAmountException.java | 5 + .../restaurant/controller/Restaurant.java | 70 +++++++++++ .../src/com/week4/restaurant/model/Dish.java | 112 ++++++++++++++++++ .../src/com/week4/restaurant/model/Order.java | 5 + .../com/week4/restaurant/model/VegType.java | 5 + 8 files changed, 221 insertions(+) create mode 100644 Week 4 Assignment 1/.classpath create mode 100644 Week 4 Assignment 1/.gitignore create mode 100644 Week 4 Assignment 1/.project create mode 100644 Week 4 Assignment 1/src/com/greatlearning/fsd/module4/exceptions/InvalidAmountException.java create mode 100644 Week 4 Assignment 1/src/com/week4/restaurant/controller/Restaurant.java create mode 100644 Week 4 Assignment 1/src/com/week4/restaurant/model/Dish.java create mode 100644 Week 4 Assignment 1/src/com/week4/restaurant/model/Order.java create mode 100644 Week 4 Assignment 1/src/com/week4/restaurant/model/VegType.java diff --git a/Week 4 Assignment 1/.classpath b/Week 4 Assignment 1/.classpath new file mode 100644 index 0000000..fb50116 --- /dev/null +++ b/Week 4 Assignment 1/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/Week 4 Assignment 1/.gitignore b/Week 4 Assignment 1/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/Week 4 Assignment 1/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Week 4 Assignment 1/.project b/Week 4 Assignment 1/.project new file mode 100644 index 0000000..fead765 --- /dev/null +++ b/Week 4 Assignment 1/.project @@ -0,0 +1,17 @@ + + + Week 4 Assignment 1 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Week 4 Assignment 1/src/com/greatlearning/fsd/module4/exceptions/InvalidAmountException.java b/Week 4 Assignment 1/src/com/greatlearning/fsd/module4/exceptions/InvalidAmountException.java new file mode 100644 index 0000000..2578648 --- /dev/null +++ b/Week 4 Assignment 1/src/com/greatlearning/fsd/module4/exceptions/InvalidAmountException.java @@ -0,0 +1,5 @@ +package com.greatlearning.fsd.module4.exceptions; + +public class InvalidAmountException { + +} diff --git a/Week 4 Assignment 1/src/com/week4/restaurant/controller/Restaurant.java b/Week 4 Assignment 1/src/com/week4/restaurant/controller/Restaurant.java new file mode 100644 index 0000000..b401dd3 --- /dev/null +++ b/Week 4 Assignment 1/src/com/week4/restaurant/controller/Restaurant.java @@ -0,0 +1,70 @@ +package com.week4.restaurant.controller; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Scanner; + +import com.week4.restaurant.model.Dish; + +public class Restaurant { + public static void main(String args[]) { + + Scanner scans = new Scanner(System.in); + List dishesList = new ArrayList<>(); + + dishesList.add(new Dish(5, "Neer-Dosa", 50, 100)); + dishesList.add(new Dish(10, "dish2", 500, 50)); + dishesList.add(new Dish(4, "dish3", 350, 30)); + dishesList.add(new Dish(4, "dish3", 250, 58)); + + System.out.println("=================Welcome====================="); + System.out.println("Please choose from the below options"); + System.out.println("1 => To sort the dishes in the increasing order of calories" + + "\n2 => To sort the dishes in the decreasing order of calories" + + "\n3 => To sort the dishes in the increasing order of price" + + "\n4 => To sort the dishes in the decreasing order of price"); + + int userChoice = scans.nextInt(); + switch(userChoice) { + case 1: + Comparator compareByIncCalories = (Dish o1, Dish o2) -> o1.getCalories().compareTo(o2.getCalories()); + Collections.sort(dishesList, compareByIncCalories); + for (Dish s : dishesList) { + System.out.println(s.toString()); + } + break; + + case 2: + Comparator compareByDecCalories = (Dish o1, Dish o2) -> o1.getCalories().compareTo(o2.getCalories()); + Collections.sort(dishesList, compareByDecCalories); + Collections.reverse(dishesList); + for (Dish s : dishesList) { + System.out.println(s.toString()); + } + break; + + case 3: + Comparator compareByIncPrice = (Dish o1, Dish o2) -> o1.getPrice().compareTo(o2.getPrice()); + Collections.sort(dishesList, compareByIncPrice); + for (Dish s : dishesList) { + System.out.println(s.toString()); + } + break; + + case 4: + Comparator compareByDecPrice = (Dish o1, Dish o2) -> o1.getPrice().compareTo(o2.getPrice()); + Collections.sort(dishesList, compareByDecPrice); + Collections.reverse(dishesList); + for (Dish s : dishesList) { + System.out.println(s.toString()); + } + break; + + default: + System.out.println("Please choose an option between 1 and 4"); + break; + } + } +} \ No newline at end of file diff --git a/Week 4 Assignment 1/src/com/week4/restaurant/model/Dish.java b/Week 4 Assignment 1/src/com/week4/restaurant/model/Dish.java new file mode 100644 index 0000000..48b1223 --- /dev/null +++ b/Week 4 Assignment 1/src/com/week4/restaurant/model/Dish.java @@ -0,0 +1,112 @@ +package com.week4.restaurant.model; + +import java.util.ArrayList; +import java.util.List; + +public class Dish implements Comparable { + private int id; + private String name; + public enum dishType { + Veg, + Non_Veg + } + private double calories; + private double price; + private List dishes = new ArrayList<>(); + + public Dish(int id, String name, double price, double calories) { + this.id = id; + this.name = name; + this.price = price; + this.calories = calories; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Double getCalories() { + return calories; + } + + public void setCalories(double calories) { + this.calories = calories; + } + + public Double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + public List getDishes() { + return dishes; + } + + public void setDishes(List dishes) { + this.dishes = dishes; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + long temp; + + temp = Double.doubleToLongBits(calories); + result = prime * result + (int) (temp ^ (temp >>> 32)); + result = prime * result + id; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + temp = Double.doubleToLongBits(price); + + result = prime * result + (int) (temp ^ (temp >>> 32)); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Dish other = (Dish) obj; + if (Double.doubleToLongBits(calories) != Double.doubleToLongBits(other.calories)) + return false; + if (id != other.id) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (Double.doubleToLongBits(price) != Double.doubleToLongBits(other.price)) + return false; + return true; + } + + @Override + public String toString() { + return "Dish [id=" + id + ", name=" + name + ", calories=" + calories + ", price=" + price + "]"; + } + + @Override + public int compareTo(Dish o) { + return this.getCalories().compareTo(o.getCalories()); + } +} \ No newline at end of file diff --git a/Week 4 Assignment 1/src/com/week4/restaurant/model/Order.java b/Week 4 Assignment 1/src/com/week4/restaurant/model/Order.java new file mode 100644 index 0000000..ce23e56 --- /dev/null +++ b/Week 4 Assignment 1/src/com/week4/restaurant/model/Order.java @@ -0,0 +1,5 @@ +package com.week4.restaurant.model; + +public class Order { + +} diff --git a/Week 4 Assignment 1/src/com/week4/restaurant/model/VegType.java b/Week 4 Assignment 1/src/com/week4/restaurant/model/VegType.java new file mode 100644 index 0000000..99002c8 --- /dev/null +++ b/Week 4 Assignment 1/src/com/week4/restaurant/model/VegType.java @@ -0,0 +1,5 @@ +package com.week4.restaurant.model; + +public class VegType { + +} From ae8208cfdc6d2beb1e3649122d299602b0c4889e Mon Sep 17 00:00:00 2001 From: phaneesh Date: Sat, 6 Jul 2019 20:49:01 +0530 Subject: [PATCH 09/10] w4a1 --- .../src/com/week4/restaurant/controller/Restaurant.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Week 4 Assignment 1/src/com/week4/restaurant/controller/Restaurant.java b/Week 4 Assignment 1/src/com/week4/restaurant/controller/Restaurant.java index b401dd3..1915dec 100644 --- a/Week 4 Assignment 1/src/com/week4/restaurant/controller/Restaurant.java +++ b/Week 4 Assignment 1/src/com/week4/restaurant/controller/Restaurant.java @@ -17,7 +17,7 @@ public static void main(String args[]) { dishesList.add(new Dish(5, "Neer-Dosa", 50, 100)); dishesList.add(new Dish(10, "dish2", 500, 50)); dishesList.add(new Dish(4, "dish3", 350, 30)); - dishesList.add(new Dish(4, "dish3", 250, 58)); + dishesList.add(new Dish(3, "dish3", 250, 58)); System.out.println("=================Welcome====================="); System.out.println("Please choose from the below options"); From 95934209f82e694441badda1a923c05c0b9a64e6 Mon Sep 17 00:00:00 2001 From: phaneesh Date: Sat, 13 Jul 2019 00:07:02 +0530 Subject: [PATCH 10/10] Week 5 assignment 1 --- Week 5 Assignment 1/.classpath | 6 + Week 5 Assignment 1/.project | 17 ++ .../fsd/twitter/client/Client.class | Bin 0 -> 5233 bytes .../fsd/twitter/model/Tweet$Stats.class | Bin 0 -> 1576 bytes .../fsd/twitter/model/Tweet.class | Bin 0 -> 2313 bytes .../fsd/twitter/model/User$Role.class | Bin 0 -> 1201 bytes .../fsd/twitter/model/User.class | Bin 0 -> 5913 bytes .../fsd/twitter/service/UserService.class | Bin 0 -> 1169 bytes .../fsd/twitter/service/UserServiceImpl.class | Bin 0 -> 6223 bytes .../fsd/twitter/client/Client.java | 117 ++++++++++++ .../fsd/twitter/model/Tweet.java | 108 +++++++++++ .../greatlearning/fsd/twitter/model/User.java | 179 ++++++++++++++++++ .../fsd/twitter/service/UserService.java | 30 +++ .../fsd/twitter/service/UserServiceImpl.java | 143 ++++++++++++++ 14 files changed, 600 insertions(+) create mode 100644 Week 5 Assignment 1/.classpath create mode 100644 Week 5 Assignment 1/.project create mode 100644 Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/client/Client.class create mode 100644 Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/Tweet$Stats.class create mode 100644 Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/Tweet.class create mode 100644 Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/User$Role.class create mode 100644 Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/User.class create mode 100644 Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/service/UserService.class create mode 100644 Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/service/UserServiceImpl.class create mode 100644 Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/client/Client.java create mode 100644 Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/model/Tweet.java create mode 100644 Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/model/User.java create mode 100644 Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/service/UserService.java create mode 100644 Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/service/UserServiceImpl.java diff --git a/Week 5 Assignment 1/.classpath b/Week 5 Assignment 1/.classpath new file mode 100644 index 0000000..fb50116 --- /dev/null +++ b/Week 5 Assignment 1/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/Week 5 Assignment 1/.project b/Week 5 Assignment 1/.project new file mode 100644 index 0000000..b6cbcb5 --- /dev/null +++ b/Week 5 Assignment 1/.project @@ -0,0 +1,17 @@ + + + fsd-twitter-java-master + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/client/Client.class b/Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/client/Client.class new file mode 100644 index 0000000000000000000000000000000000000000..0ad256b4d039ecec46070359e10ea74311aecd26 GIT binary patch literal 5233 zcmb_gYjj*y75+{#$=pnCX}K+dsT6LZKr(4M^Z}G4gwnL7X_K}vB{cw|{~N>zNIR#6eEqz%;q;tPD>160KKTU37NAJ>9~e&^ho$>c$sy3CI` z`<%O9XYX(Cb55Rq_0eMhR^g=}Y6M#2ZaO-gvn?-WTe*yr8IBI+6H#x}@jN>hji($t z<3+pG5JW&=-X3e86-`-W+&Z|&j(Y<2oleH_x&&&QTlxh8-EP7Tp%x7~>QFB*x7W$o zTMFqxJGb2$OxXfPuN${g{Z`JA^U`9#OFDUhw%(I)se|UymXi@^YQDC2!nK%}<5oIa z`a?Js^Mf!1E;_#2yq(+U#O>%cBw{|@lg_4eEWl|3jl;IrlgWElCQkP+ZEiV%ldqwz zBLsodb)12)fSz@;g_Pyl>nzU_Sl4{=Iy+kYJr_JD6^+?mM+07mMM0c7DNnIt-m}v> z&cfNuky~KOPV?m)H@c01@)$1LO4GZ=I5&uM1m>$yPX4T8iOgm&D0lvC=G($$Kv)Q%YW?<7&j%Hmq#c&Ln7jrmRmZ=90S|8m=Mm zOx9wKDWAdJswHV|hmO}v_cYJ-osd57)Nw7Y6R4AQO&8d?HZ@`wt`B0j!1CiKXNKa| zVPTL-8M3{2(vR2LqQs&sg-z8kl2xjKCR?lgoJLLwxrQNuB_^YFq8&?cCUrOp1W7Bu zg*enOBCvUyjjDwWZYt%DvLt6)Lc73zl95|(Qd_Pl@ORyl(2y0lu*$?VvLaHpNnmMU zz?My8ty-8arGbSOt74f(#tOs3cHT3m$xh>(v{1)mQvTTz7&quB%I)fTUzuuPvUR;t zwyv9|v@ZW-q|XQafcbCDRojr?5?#mVFzNzTKkZtrMvzqpzZg-N?!f^JJYr z!wJcwtw5N@{1Z=L<^OO9v5ce+T9`Yf>kHI4vJF-(mm8&Ql2S?_asrbRy^u1Ej#ss@ zrpfn+Vzzvj=%}*DitC)ci7pyhQzc#Y_as%!iFsChq|eHhE;kJ^XESs4P}3_abCYW3MZo0St?wW{Eu;ZyAMX*X$Q zcJHIh2kCvEoN4$hceOd^-p#Wk@J4PT(>J||-ptr4<(k+c5F>|vf(v80tt z^UIeQ2gSFBH>s5Cj>tG@c!b#GEvRT^My%bdS8F&-4ZK{b1r6hLWgDZD(r}aoQRbYi z*^?Y*orK^H?OrYiX2a&&ZRqz^~U@yMXbrWWvtM2jUT01jrr3$%12*Y%MX@W)lrv(dil*n9gSN^2neLF;)7@?E=+^LU zfwPjHmu-(mM@L7OIq|sMIiCU^n`<;87*k+MB?OehtYItU{-61P(50=6n%_d#X%}W&iP{)t(V*_Xb2 zEp*~J9Y4WOWhN2{6OKLa`%)vsdUYz}7)I0bWk;hK99AScA$Bbe9QdIU{y+|T zEvCBTN(=lt&7F!wl{ealEDS zSuV>&1yrJLfk}EEXQwhX3z(YIFdt2PubzQ(5k>?H(Z<6uiwKs970g~cmWv*~@UFrtF~CP%l6lNh zvjoXTi6*fZZ^PR;3y3ss#XAU-26DX<`w6RvxDxNeyNSZp7{Gh*Uiy3pkKs111!#A- zTC2nDlsDzSIh5ob70Elf=JVf4{`ZkwH=jK)7B_mWG34cy?)6<8NEILH&mK8?FmC za**Zrvl{GZrAjqQeLg{DK0!r_c!(jYRbbk~kOCdh*so8=WrRc*F2?12?X5vS*77md zjTB$PMMCLTuHJAQPbU3k>=Xf9 zE9T%j1)3ZEbSS6*nh4?-gbL47{2RX{Kx*j0U-2tawe;h8{91u#18w|Gw=?3ism=q%?YY5B^B1f%^C3PozTh_$K_BRHK5KPFud!J4l5H|Kjf3S%LY4JP69w5szkus0ZBgSOOVMJvCDeYKd|lkre)0qf jP+1T{`7-hC#mcw8@tXvC18QDDh{$f_!r!@2gMa)NHfWS; literal 0 HcmV?d00001 diff --git a/Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/Tweet$Stats.class b/Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/Tweet$Stats.class new file mode 100644 index 0000000000000000000000000000000000000000..a50afcf0e818de18e77f859cda739d9a42d9fe17 GIT binary patch literal 1576 zcmb7DTTc^F5dKc-jqNJ6+%G}}lx-0nK|d1neWUu=l7o$dsu4q2AbDtgv`oh$@az3USy2KJ$NnH20-_`kr<^tE zDspvCDh@8zn=YZE>b>1qToqU@_g#0L!ZvKzR$Bsj<3HjudjjDiU0@IbLplbbX&Ar_ z9SNia1`Gxam2FqPYS#9pw`=V?QXo~XS1f1G@@)2l%`g)eDD+>x-7X>@Kai^2ZVr_! zF_|eH5k%>zaefpwN=zp~;9}4{M$YMoF)~5Ovwb2>s5c#rW#od6I3tG$*?C4)RDDNz zq^!V*ktttj*WO)^!4Mel-rjE7PE~qwWJyI|`cJ;Zn;Mpo;~uUEj2f5IW%d|h>R3gA zq_d8Wq+1o3p$lFD2SwK7xJP%)rOyV(FLIw#JP=svRpcM39#Io=>CVCP(>>vIq{oa= zyqXA8-_&s%cLcPZdef`Omo`s@=D&eFcZvE@a$V^a9jnoh^dhzeGJTITJr%#3NRwy- z^b*4e@idSXVy*p^lmwDV9$E6^^d+DZ{u)_pgbUHCWtUHIJ$s7eH}XOlrhk+$Ak+x` z8BZvTVvJT&7!yGTlU6>9WWQtb3mKik!yUnq^WbUB1i@QD`Dk|f1d|t~HJ{WtU1h@0 zFy{NwAOln5OLF0xJ&DYA6PfNwB;A|HY&VfPDwn>32zQx@-0DeWzMIHGPa=!GiOhEs zSt26F6+~EOCPL#ze-^h+Bf-)Xeq!luDszfu)~JPi>TU~bWY4nwux-zio&4Ow;}$l) rp368zNr4>A&I*#q6HSu{tdf`OxJV%oCWI|N@+qFts`+%DqX_&3CE_fX literal 0 HcmV?d00001 diff --git a/Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/Tweet.class b/Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/Tweet.class new file mode 100644 index 0000000000000000000000000000000000000000..a0c562508a76c8bc28e522d1a4868b485a1a41f4 GIT binary patch literal 2313 zcma)7TT@$A6#jNDB!p84;aVsyU|T{$iQ0>8p;Q6UU;u3>ZJ=ro$swG2NH95RXLNk@ zANZp0^$BO{h0EB{@yQ2&ljHd9eNI9G(P?H*_FgON@~ySLb@JCgzy1#38nOX+1je() zokYH5=(c6(rGi<=C$`GDg#FC4ZKIUfDdr3-vHHv~>;QZM;V1f2Jz?oITiJYKWNiVD znG+C;0-7z&mW*;)&l>`f)Uj>aE-~_yKyb&%nfm>bCD59cS&iI0V}u>sifvknc`9ky zYUbvOl>$L9dXk>gS<5V#_KbixI=&|0n}(pPRejS^5QRqDdK%$r&G=dfUi53|L5IvXpuvw8c{`^efS|mc*U*Y!0K)?9s_0rF zAzVPeGtQ#RER zXq4uTrx2<7)ZjC>R+c$xqwqzOGINXZc}2HaNCPy75>w;rvSn8_lI%JMCzDuunZ{k! z1d2dPITgZNxD~)nfzIRBIf2R=UdL^LhC#VG>WZsnB~glvymNnIrxZ5@&ZKQU``MDd z>yjb3t(UhYkyI0tAl-X>R4MOkNP@%g z$-n}=(TyfZC7tb}vlIa=3G|&@mD!4E<&07gD+1kW{l2We3q0GXZASlq zeX*a=>3f`^^Vj=08;kE_FgCG|q1a1Y$Q)v1AEU=n2Nc3<@Zmb~-9R7NehxP=hFdDr zuoD*-af$JnLDeD=MpZQ)g+pSN*mr5|k-z;H4)OmuZWG58aZD4(9pacFj=Ks+uM_ta z4lW;&IN1}lk;we9UvTyZUg{e+tHNlGfg6VZE{N5fxt*@_;ENN^3r(HlO`V5MIxjYL zp1_qRnMY4LFE?>+#Uv80^HrV-_CNz!LaJT&*v@oA0EcjbudO%S0551GsgsPwzlYzq z7ylFOu>-sr=kpwX?_T^5h$Y$42|nL^hY{Wfc^^E&jc?IKX_V5alIZW~6_e!;xBLcg#w%eS;hl8GCqbq&k_n^fBfKX;)w4mb>&kGA4SY$saZQ#W<0f7r zm5D4L;zJqm0QbUU2Uv?_c%x#dstA8Y?EyB9r`Jnhz!rBT&pqAdR-1@ZmfP!)FyW^4 T;9~{u6MV`u#I%q3Yy$rRoEE#= literal 0 HcmV?d00001 diff --git a/Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/User$Role.class b/Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/User$Role.class new file mode 100644 index 0000000000000000000000000000000000000000..94ed3752b554afc8b0f760579749eb73914fc0b7 GIT binary patch literal 1201 zcmb7EU2hUW6g|@g7U;G`w5_G}8x^)6+cxS8q$xpch(HroNQe(+pwqg|vY6earvFOm zLmQ2a&;BUmoh`QeVj_?*bLZZ3?>ReX`SttTC4d*$Rx!n}-W&9dBUf@l`hx>u8!b<`+2+6&Dk2QC$NYpFHmA~xGwd^H&B|V@R%(7|nUyAkQJbh| zfgxIYU9UD6rYntBJ=-qTS{0LF^Zmq);>DhAIhMb}pycvxhDezN#1Tz`VNOE|w-{o@ zamhlib|b~~T@qiY=GzIXy{#dNSRASh7Br}c$=zKIaU`f!&2mIz*zXGW9q-zLAzd5v zxZUQiCF9^Q2?cXR!T)G^H1&krLqVJETz*nvNj$`36^|HFA;PDgFZvpuAj^>8uFFq* zgHNXndRW$e_gM7&LN%oH?-5C5Py<@~hYaN~Z2UCx6W)N7oYU|Wd4`waer20`ULi!{ zdcch!X(lp5(i{xko_J%)$C{AV+mJQ1H?1Rw`$Lz`OQBX0SDcXO4h_<(jw9TFnebF> zGUWc(xOA)Xb=ch^Pbl;@DZ5M3F95A%6(E(7MxjiE)+DB>PNS$zvHWa&2kWF~lyl6U zAsqyFB0(@8{Xr>ZgtXa-j4*GWVeu;=rm#f6v%xeCGxW_+*G!O+S#tJx#un8`PO84T za*pL2aEuBt25G@w#fl_LMDOAL82*ZcNch4Ci=DTMe%UEXMs;QR0uR={Q09utRX27` sAwjqPY}`Yq8aXSOX8Hx5{{;ItPJtfuT*X?ju46+Y2~Ynd*xFtC10rP_lmGw# literal 0 HcmV?d00001 diff --git a/Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/User.class b/Week 5 Assignment 1/bin/com/greatlearning/fsd/twitter/model/User.class new file mode 100644 index 0000000000000000000000000000000000000000..77d5ab043cc37fa51f01413150d6793c69d8db4c GIT binary patch literal 5913 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 YX#9=O%kX#ngWvK;lG7|S{|r_97w+c(9smFU literal 0 HcmV?d00001 diff --git a/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/client/Client.java b/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/client/Client.java new file mode 100644 index 0000000..1723a41 --- /dev/null +++ b/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/client/Client.java @@ -0,0 +1,117 @@ +package com.greatlearning.fsd.twitter.client; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.Scanner; +import java.util.Set; + +import com.greatlearning.fsd.twitter.model.Tweet; +import com.greatlearning.fsd.twitter.model.User; +import com.greatlearning.fsd.twitter.service.UserService; +import com.greatlearning.fsd.twitter.service.UserServiceImpl; + +public class Client { + + public static void main(String[] args) { + + UserService userService = UserServiceImpl.getInstance(); + Set users = populateData(userService); + Scanner scans = new Scanner(System.in); + + System.out.println(); + printEntitySet(users); + + int userInput; + System.out.println("========== Tweet Interface ========="); + System.out.println("1 => Post a tweet"); + System.out.println("2 => View external tweet feed"); + System.out.println("3 => View my tweets"); + System.out.println("4 => Like a tweet"); + System.out.println("5 => Comment on a tweet"); + System.out.println("===================================="); + userInput = scans.nextInt(); + + switch(userInput) { + case 1: + System.out.println("User name: "); + String userName = scans.nextLine(); + String userTweet = scans.nextLine(); + new Tweet(userName, userTweet); + break; + case 2: + System.out.println("Twitter feed\n"); + Iterator it = users.iterator(); + while(it.hasNext()){ + User user = it.next(); + if(!user.getTweets().isEmpty()) { + System.out.println("Tweets by User - " + user.getFirstName()); + printEntitySet(userService.fetchTweetsByUser(user.getId())); + } + } + break; + case 3: + System.out.println("View my tweets"); + Iterator it1 = users.iterator(); + while(it1.hasNext()){ + User user = it1.next(); + if(!user.getTweets().isEmpty()) { + System.out.println("My tweets" + user.getFirstName()); + printEntitySet(userService.fetchTweetsByUser(user.getId())); + } + } + break; + case 4: + int i = 1; + Tweet tweet; + System.out.println("Like a tweet: "); + Iterator it11 = users.iterator(); + while(it11.hasNext()){ + User user = it11.next(); + if(!user.getTweets().isEmpty()) { + System.out.println(i + " " + user.getFirstName()); + printEntitySet(userService.fetchTweetsByUser(user.getId())); + } + i++; + } + System.out.println("Select a tweet: "); + int tweetChoice = scans.nextInt(); + Tweet.Stats.setLikes(1); + break; + case 5: + System.out.println("Comment on a tweet: "); + Iterator it12 = users.iterator(); + while(it12.hasNext()){ + User user = it12.next(); + if(!user.getTweets().isEmpty()) { + System.out.println(user.getFirstName()); + printEntitySet(userService.fetchTweetsByUser(user.getId())); + } + } + System.out.println("Select a tweet: "); + int tweetComment = scans.nextInt(); + System.out.println("write a comment below: "); + String comment = scans.nextLine(); + Tweet.Stats.setComments(1); + } + } + + private static Set populateData(UserService userService) { + Set userSet = new HashSet<>(); + User user1 = userService.createUser( "user_1", "Firstname1", "Lastname1", "user1@gmail.com"); + User user2 = userService.createUser( "user_2", "Firstname2", "Lastname2", "user2@gmail.com"); + + Tweet tweet1 = new Tweet("Tweet 1"); + Tweet tweet2 = new Tweet("Tweet 2"); + + userSet.add(user1); + userSet.add(user2); + return userSet; + } + + private static void printEntitySet(Set entity ){ + Iterator it = entity.iterator(); + while(it.hasNext()){ + System.out.println(it.next()); + } + } +} \ No newline at end of file diff --git a/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/model/Tweet.java b/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/model/Tweet.java new file mode 100644 index 0000000..b112f57 --- /dev/null +++ b/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/model/Tweet.java @@ -0,0 +1,108 @@ +package com.greatlearning.fsd.twitter.model; + +import java.util.Date; +import java.util.Objects; + +public class Tweet { + private final long id; + private String tweetMessage; + private final String mediaUrl; + private final Date createdDt; + private static int idCounter = 100; + + public static class Stats{ + private static int likes; + private static int comments; + private int retweetCount; + + public static int getLikes() { + return likes; + } + + public static void setLikes(int like) { + likes = like; + } + + public static int getComments() { + return comments; + } + + public static void setComments(int comment) { + comments = comment; + } + + public int getRetweetCount() { + return retweetCount; + } + + public void setRetweetCount(int retweetCount) { + this.retweetCount = retweetCount; + } + + @Override + public String toString() { + return "Stats{" + + "likes=" + likes + + ", comments=" + comments + + ", retweetCount=" + retweetCount + + '}'; + } + } + + + public Tweet(String tweetMessage, String mediaUrl) { + this.id = ++idCounter; + this.tweetMessage = tweetMessage; + this.mediaUrl = mediaUrl; + this.createdDt = new Date(); + } + public Tweet(String tweetMessage) { + this.id = ++idCounter; + this.tweetMessage = tweetMessage; + this.mediaUrl = null; + this.createdDt = new Date(); + } + + public long getId() { + return id; + } + + public String getMessage() { + return tweetMessage; + } + + public String getMediaUrl() { + return mediaUrl; + } + + public Date getCreatedDt() { + return createdDt; + } + + public static void setIdCounter(int idCounter) { + Tweet.idCounter = idCounter; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Tweet tweet = (Tweet) o; + return id == tweet.id && + Objects.equals(tweetMessage, tweet.tweetMessage) && + Objects.equals(createdDt, tweet.createdDt); + } + + @Override + public int hashCode() { + return Objects.hash(id, tweetMessage, createdDt); + } + + @Override + public String toString() { + return "Tweet{" + + "tweetMessage='" + tweetMessage + '\'' + + ", mediaUrl='" + mediaUrl + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/model/User.java b/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/model/User.java new file mode 100644 index 0000000..cd673c2 --- /dev/null +++ b/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/model/User.java @@ -0,0 +1,179 @@ +package com.greatlearning.fsd.twitter.model; + +import java.io.Serializable; +import java.util.Date; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +public class User implements Comparable, Serializable { + + public enum Role { + REGULAR_USER, + ADMIN + } + + private final long id; + private final String userName; + private String profileImgUrl; + private String coverUrl; + private String password; + private String firstName; + private String lastName; + private final Role userRole; + private final String email; + //initial value + private static int userIdCount = 100; + private final Date createdDt; + private Date updatedDt; + private Set tweets = new HashSet<>(); + private Set followers = new HashSet<>(); + private Set following = new HashSet<>(); + + public User(String userName, String firstName, String lastName, String email){ + this.id = ++ userIdCount; + this.userName = userName; + this.firstName = firstName; + this.lastName = lastName; + this.email = email; + this.userRole = Role.REGULAR_USER; + this.createdDt = new Date(); + this.updatedDt = new Date(); + + } + public User(String userName, String firstName, String lastName, String email, String profileImgUrl, String coverUrl){ + this.id = ++ userIdCount; + this.userName = userName; + this.firstName = firstName; + this.lastName = lastName; + this.email = email; + this.coverUrl = coverUrl; + this.profileImgUrl = profileImgUrl; + this.createdDt = new Date(); + this.updatedDt = new Date(); + this.userRole = Role.REGULAR_USER; + } + + + public long getId() { + return id; + } + + public String getUserName() { + return userName; + } + + public String getProfileImgUrl() { + return profileImgUrl; + } + + public void setProfileImgUrl(String profileImgUrl) { + this.profileImgUrl = profileImgUrl; + } + + public String getCoverUrl() { + return coverUrl; + } + + public void setCoverUrl(String coverUrl) { + this.coverUrl = coverUrl; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public Role getUserRole() { + return userRole; + } + + public String getEmail() { + return email; + } + public Date getCreatedDt() { + return createdDt; + } + + public Date getUpdatedDt() { + return updatedDt; + } + + public void setUpdatedDt(Date updatedDt) { + this.updatedDt = updatedDt; + } + + public Set getTweets() { + return tweets; + } + + public void addTweet(Tweet tweet){ + this.tweets.add(tweet); + } + + public Set getFollowers() { + return followers; + } + + public void addFollower(User user){ + this.followers.add(user); + } + + public Set getFollowing() { + return following; + } + + @Override + public int compareTo(User user) { + return Long.valueOf(this.id).compareTo(user.id); + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", userName='" + userName + '\'' + + ", profileImgUrl='" + profileImgUrl + '\'' + + ", coverUrl='" + coverUrl + '\'' + + ", firstName='" + firstName + '\'' + + ", lastName='" + lastName + '\'' + + ", userRole=" + userRole + + ", email='" + email + '\'' + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + User user = (User) o; + return id == user.id && + Objects.equals(userName, user.userName) && + Objects.equals(email, user.email) && + Objects.equals(createdDt, user.createdDt); + } + + @Override + public int hashCode() { + return Objects.hash(id, userName, email, createdDt); + } +} \ No newline at end of file diff --git a/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/service/UserService.java b/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/service/UserService.java new file mode 100644 index 0000000..feb33ab --- /dev/null +++ b/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/service/UserService.java @@ -0,0 +1,30 @@ +package com.greatlearning.fsd.twitter.service; + +import com.greatlearning.fsd.twitter.model.Tweet; +import com.greatlearning.fsd.twitter.model.User; +import java.util.Set; + +public interface UserService { + + User createUser(String userName, String firstName, String lastName, String email); + + User createUser(String userName, String firstName, String lastName, String email, String profileImgUrl, String coverUrl); + + User updateUser(long userId, User user); + + User findById(long userId); + + void authenticateUser(String username, String password); + + Set fetchTweetsByUser(long userId); + + Set suggestUsers(long userId); + + Set fetchFollowersByUserId(long userId); + + User findUserByUserName(String userName); + + void addFollower(long userId, User user); + + Set fetchTweetsByFollowers(long userId); +} \ No newline at end of file diff --git a/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/service/UserServiceImpl.java b/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/service/UserServiceImpl.java new file mode 100644 index 0000000..095cce6 --- /dev/null +++ b/Week 5 Assignment 1/src/com/greatlearning/fsd/twitter/service/UserServiceImpl.java @@ -0,0 +1,143 @@ +package com.greatlearning.fsd.twitter.service; + +import com.greatlearning.fsd.twitter.model.Tweet; +import com.greatlearning.fsd.twitter.model.User; + +import java.util.*; + +public class UserServiceImpl implements UserService { + + private static Map users = new HashMap<>(); + private static UserServiceImpl userService = new UserServiceImpl(); + + private UserServiceImpl(){ + + } + + public static UserServiceImpl getInstance(){ + return userService; + } + + @Override + public User createUser(String userName, String firstName, String lastName, String email) { + User user = new User(userName, firstName, lastName, email); + users.put(user.getId(), user); + return user; + } + + @Override + public User createUser(String userName, String firstName, String lastName, String email, String profileImgUrl, String coverUrl) { + User user = new User(userName, firstName, lastName, email, profileImgUrl, coverUrl); + users.put(user.getId(), user); + return user; + } + + @Override + public User updateUser(long userId, User user) { + User returnedUser = findById(userId); + if(returnedUser != null){ + user.setUpdatedDt(new Date()); + users.put(userId, user); + } + return returnedUser; + } + + @Override + public User findById(long userId) { + return users.get(userId); + } + + @Override + public void authenticateUser(String username, String password) { + User user = findUserByUserName(username); + if (user == null ){ + throw new IllegalArgumentException("User does not exists"); + } + if (! password.equals(user.getPassword())){ + throw new IllegalArgumentException(" Username/password does not match"); + } + + } + + @Override + public Set fetchTweetsByUser(long userId) { + User user = findById(userId); + if(user == null){ + throw new IllegalArgumentException("Invalid User Id "); + } + return user.getTweets(); + } + + @Override + public Set suggestUsers(long userId) { + if(findById(userId) == null){ + throw new IllegalArgumentException("Invalid User Id"); + } + Set> entries = users.entrySet(); + Set suggestedUsers = new HashSet<>(); + Iterator> iterator = entries.iterator(); + User selectedUser = null; + while (iterator.hasNext()){ + Map.Entry entry = iterator.next(); + long currentUserId = entry.getKey(); + if(userId == currentUserId){ + continue; + } + suggestedUsers.add(entry.getValue()); + + } + return suggestedUsers; + } + + @Override + public Set fetchFollowersByUserId(long userId) { + User user = findById(userId); + if (user == null ){ + throw new IllegalArgumentException("User does not exists"); + } + return user.getFollowers(); + } + + @Override + public User findUserByUserName(String userName){ + Set> entries = users.entrySet(); + Iterator> iterator = entries.iterator(); + User selectedUser = null; + while (iterator.hasNext()){ + Map.Entry entry = iterator.next(); + User user = entry.getValue(); + if(user.getUserName().equals(userName)){ + selectedUser = user; + break; + } + } + return selectedUser; + } + + @Override + public void addFollower(long userId, User user) { + User fetchedUser = findById(userId); + if (fetchedUser == null ){ + throw new IllegalArgumentException("User does not exists"); + } + fetchedUser.addFollower(user); + } + + @Override + public Set fetchTweetsByFollowers(long userId){ + User fetchedUser = findById(userId); + Set tweetsByFollowers = new HashSet<>(); + if (fetchedUser == null ){ + throw new IllegalArgumentException("User does not exists"); + } + Set followers = fetchedUser.getFollowers(); + if (!followers.isEmpty()){ + Iterator followersIt = followers.iterator(); + while(followersIt.hasNext()){ + User user = followersIt.next(); + tweetsByFollowers.addAll(user.getTweets()); + } + } + return tweetsByFollowers; + } +} \ No newline at end of file