From 9ba243baac4220e2d9442a9768590c30e4846acb Mon Sep 17 00:00:00 2001 From: Anupam Rai Date: Thu, 24 Aug 2017 16:01:56 +0530 Subject: [PATCH] Discussion forum Implemented --- .classpath | 6 + .project | 17 ++ .settings/org.eclipse.jdt.core.prefs | 11 ++ README.md | 1 + bin/com/forum/main/UserInterface.class | Bin 0 -> 4365 bytes bin/com/forum/units/Question.class | Bin 0 -> 1643 bytes bin/com/forum/units/Reply.class | Bin 0 -> 1509 bytes bin/com/forum/units/TimeStamp.class | Bin 0 -> 562 bytes bin/com/forum/units/Upvote.class | Bin 0 -> 1521 bytes bin/com/forum/units/User.class | Bin 0 -> 1626 bytes bin/com/forum/units/UserRole.class | Bin 0 -> 1035 bytes bin/com/forum/util/Utility.class | Bin 0 -> 833 bytes .../forum/activiy/UserActivity$1.class | Bin 0 -> 1116 bytes .../forum/activiy/UserActivity.class | Bin 0 -> 7206 bytes .../forum/units/service/QuestionService.class | Bin 0 -> 2348 bytes .../forum/units/service/ReplyService.class | Bin 0 -> 2929 bytes .../forum/units/service/UpvoteService.class | Bin 0 -> 2807 bytes .../forum/units/service/UserService.class | Bin 0 -> 2299 bytes src/com/forum/main/UserInterface.java | 157 +++++++++++++++ src/com/forum/units/Question.java | 53 ++++++ src/com/forum/units/Reply.java | 42 +++++ src/com/forum/units/TimeStamp.java | 18 ++ src/com/forum/units/Upvote.java | 43 +++++ src/com/forum/units/User.java | 53 ++++++ src/com/forum/units/UserRole.java | 5 + src/com/forum/util/Utility.java | 18 ++ src/discusion/forum/activiy/UserActivity.java | 178 ++++++++++++++++++ .../forum/units/service/QuestionService.java | 51 +++++ .../forum/units/service/ReplyService.java | 62 ++++++ .../forum/units/service/UpvoteService.java | 66 +++++++ .../forum/units/service/UserService.java | 47 +++++ 31 files changed, 828 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 README.md create mode 100644 bin/com/forum/main/UserInterface.class create mode 100644 bin/com/forum/units/Question.class create mode 100644 bin/com/forum/units/Reply.class create mode 100644 bin/com/forum/units/TimeStamp.class create mode 100644 bin/com/forum/units/Upvote.class create mode 100644 bin/com/forum/units/User.class create mode 100644 bin/com/forum/units/UserRole.class create mode 100644 bin/com/forum/util/Utility.class create mode 100644 bin/discusion/forum/activiy/UserActivity$1.class create mode 100644 bin/discusion/forum/activiy/UserActivity.class create mode 100644 bin/discussion/forum/units/service/QuestionService.class create mode 100644 bin/discussion/forum/units/service/ReplyService.class create mode 100644 bin/discussion/forum/units/service/UpvoteService.class create mode 100644 bin/discussion/forum/units/service/UserService.class create mode 100644 src/com/forum/main/UserInterface.java create mode 100644 src/com/forum/units/Question.java create mode 100644 src/com/forum/units/Reply.java create mode 100644 src/com/forum/units/TimeStamp.java create mode 100644 src/com/forum/units/Upvote.java create mode 100644 src/com/forum/units/User.java create mode 100644 src/com/forum/units/UserRole.java create mode 100644 src/com/forum/util/Utility.java create mode 100644 src/discusion/forum/activiy/UserActivity.java create mode 100644 src/discussion/forum/units/service/QuestionService.java create mode 100644 src/discussion/forum/units/service/ReplyService.java create mode 100644 src/discussion/forum/units/service/UpvoteService.java create mode 100644 src/discussion/forum/units/service/UserService.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..fceb480 --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..88b2229 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + discussion-forum + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3a21537 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/README.md b/README.md new file mode 100644 index 0000000..2476af0 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# discussion-forum diff --git a/bin/com/forum/main/UserInterface.class b/bin/com/forum/main/UserInterface.class new file mode 100644 index 0000000000000000000000000000000000000000..27797fd1bafc690f091d523e134cf333d366c3c6 GIT binary patch literal 4365 zcma)9`+F4C8GdIIvYTZf7)ZDlMnFtZh!wR!kP>o{XhI|*p`fCZ%_I!$&MdRD!L6-r z6|wbx#Y$^$3TZ8EHMB{PYVWnR{jGmTf9o%O9-gM}cV>2X0!!NDnau9_&N=gb@B4n= znSA!2k3Io#7ycecOv9R#n`s$!y?mx6W7Q)W0VMbT?gNnneH1?EV`c52ar&&P2G#jfOpem8CDxD(qrzpbOUd%uQN5rk#S$VAe4 zH@*@;bcZ!<&mY7$=K*(-1x$D!dFmj_DNKG7M zZ{z=C(U@7k29C!hQ6$n`eQQ4fi0m z2`$?iN4JLMN|H!!d-HahWtG4KERaK1nps#z68q3A<{;+{75ET8K8XG}4ro|bDQ_JE zIH+OanB@zrj+vngmo+tCPn$eyNXH?3iDh7Bvz9ZWVN0cFUbi-cPU-jIh>nNki3#5g z44K3ucr=cq5f?_t(D9h$7S9SlX(vfChjpY>F=Q+!Pp_Na7;9o_1*=nv0pCoW=ryyd zl;Sw1VO^Qnp!B+2FJt;8-wR>Kb(}!DOp6$oJ(RRm;xM$egKQk`+!musPRB{mukmp+ zowxc%MXBxz1Sdd8EHT=Z#SOV4RJ@Xv>{2OygwU%1PBG@Hl&gF<@DSnNF96 za|wKz%o;uJn9-N_6Zi^wNgAEf=Z%7!_l(prmz5Pa16Q#$Z*BhrVG_y(Si<0%a{ zl^K#FV$AY%oW?WUIcs`3i(@x1Terybtd4KuTZETNo4K4lTIi)r?drJ{izc_Z=PIm1b7k+t<Wy=mLZC$hF`@xoe-g9J6Y4wKiDdb<&@iQU6A?vv*E0-%W67VmS{X)kF zLfPWH0$ZFQp-CN=6q|ymaL|p$ex+kdVv7Q%B_m>%RWmv+s|`mK)Z!x2r?v^``L%es zM2`w2@QDnT5)21_%R`2Q6|*}Ts$I(P_d5Qd>=kAxNDAfj{-op2f@Wcmo{9>}zv%d@ z8V^vaah@jwEQ*xXWvjDS94CfX??hXr2yinwt>SA`6?;58I6u|O(XH<6`n)IkZ6S2d zTf}cWI7@ySu3+)uD_C-P67|zqF^x5sufvVJzLeP z0N6x)0qa6wr=hKyL5Aq+b0uWg$MW;UPR$c5L}T?&FzZRIo5ELT@bwv-IXCNw4nh8# zm;qoA`OWO4>xq6NPxV_cOf8 z5orgRe89qa)JX2{bC5qfc}cvQm%*!v*B!jJD>+}NzNqdmhxga2FII7+qy9}MG%@=z zCk8p(Nd>^RrgL!}w(;-XxQD;n`MaAw-h)==w2LS9Zrsmr{d~a_s|LOs#9O6&5~!&& z;_vdI?^pzh}tc8DvwQ!*VXZ1h4F<fP%_65SBtG<07fF+zq^LteCOCx-6j&WkU_Y%;%mg$-xhmwG*ubh# zW${r(i7$r|JC!895~X}@Nz{KlPwY3**tJsq?%eFzvQ%pc5qOHMK251kGr?yl)ftNR zEYp9!lvs=}!{zoBO2k9BfX md5x01K}n>ozJ;xLo2}}l5<)q6%hbo|h}A;82H7r#zx@}Jd>_mJ literal 0 HcmV?d00001 diff --git a/bin/com/forum/units/Question.class b/bin/com/forum/units/Question.class new file mode 100644 index 0000000000000000000000000000000000000000..6f3ec82e01724f46900b0829184d2e40a1155399 GIT binary patch literal 1643 zcmZ{iSyR(s6o%igd(%*$g-St@MX?km3b-H@7e;5ms^fsYHk44~vZ8bdGok*HL>%0%=Egx|%?#`CdI%m9A=ZlwHTtjn0NZwx`*)+M&-W*VZh7N;7Kp zhTcaj`QCED9Y}XHXPZhc)nak3 z$&fKbVK#?xd36~}xX%5dvRYh@*8%ESj;!|lv5XD41%qL&t+w_|=MfE^Hg=h(k6B8cq;=0A!Bx{!f@|>6Cc* zbTaP>vLKJM2+EBs-$|2)w-}nZW12Bb7Hck_m5~Zqy#Oc2H7FGiBCRN3K&D57p zpqwE{-rGr<*p%l`@uLC!Mt$U-d01{#5Qpd;&1kUD`Zodd#K#2^o_83Qu&k;uXeyBrJhu)i?tw30m6LY)RX ZlX^R_yZ(GuXzN!)HiiC#A9=|h{{v7w`zZhb literal 0 HcmV?d00001 diff --git a/bin/com/forum/units/Reply.class b/bin/com/forum/units/Reply.class new file mode 100644 index 0000000000000000000000000000000000000000..9185f41f2df110f211ed2451f50341bc8782049f GIT binary patch literal 1509 zcmZ{j+fvg|6o&uZ(o-6tmQ#yGK~U3zR4Xdl%8jElV%1Tw_o0LuCv7kXW_T+PppF+l zfDh%k)^2(*gkEGPd$0Ac?_X>8&);9a0c>JBg_yu>+wN8mZO89c{hsN$)py2`b&|q_ zKrwu@XLgNUPwyTHq`HRd>K#KM-~6Z_>s3qdb*j6bWA-|AfeGI=9D%uJSmHhH(|P)n zZ@8Xm_XHNs#k>v9C@y9m2#6hljHSEYv!3Ui2;{~pHf>oi-Dq1T;cpAXwQ`F9p4tb7 zf@#dAFe5NIV&n`JbC@R+$GYVkZw>{fwViTUH3Mpaic6Rjm};6mx|Gue<33gWn`qJ$iQcppqxVE&v-*=Mqt=osD$a+%j63075Pp;DO3VeIIZ z3Jqm$2{~!818JI?q>$9B!CYqk(+eiUo^Gp1AW6}rIEbj`Kau~2 z!WVjvVS%1WilBX5kvpI-x&lE~l~z7YRDNJFoD!EQYCiziutb4^K(Eu2OV+4>l&+j& zg{pq0z44OSvHbKf|HiQROH9c8;#U;DDGB6kZkoT5~i>qi9&+-4pdxAP9} zMu619Af-rp4LI0~@uKm9@zm%6n8yZ2RxNJ{z{taN=_M?{=e#oWsimGers`C?L{>eFswQ#qC|hE`Cl6w z*s`$6u<>KM-r<6bRJRTqs54ac_$*CDtn_j;qnBi9AWo&0UCr;br;lLn63n2xG88nC zJcE4NnQVn3k6uP^vGWA`o}2<4vZYzl!ZP{J=Lb|#qlnInI@#aN4{+}mnw>wJ*K+a! dp)|SNdB*x9+&SE)3J7BnXfB|f3)r5KnjaJ?X&?Xq literal 0 HcmV?d00001 diff --git a/bin/com/forum/units/Upvote.class b/bin/com/forum/units/Upvote.class new file mode 100644 index 0000000000000000000000000000000000000000..0dff48cadac5cb645f7128d0a9fc31652e120051 GIT binary patch literal 1521 zcmZ`&T~pIg6x`d=?+6tTS_B0_Z3|LGR21Ze(HXI$qkO!F5-?8MV45=Hzw!gr@xdS9 zk8<2|Q(H{aKIA6%?(W&M_w@IlpT7XCVl#!9!bII|RF7P*-Ke&kw%@Amot(P9mBNrh zF?_abH>@4sY@8^hKeVluZ@W!}sahEKrgOHgknpS%=cB@8ALy+d5HZwlSssn_0rt4h z^O$|8ptcn}t{Ip{o<{t4c1xkq-=WT0QaZN$7i@F16lr0>Kn@0BErCf(w+)m~ zmQ2|EzO{L+~p82yUEXTHZU#b=TT z?>70lzp39afdAoF*#YF%zc5HN^-3xQp<$iP2>Z^Xz~a(NV64~`u3)iatk=~Umcp*a zFOU;m@-l=ZU2U=li85JPJjYVcLRRk2ryGdwDChdouoRfWbpLh54@4w%F0IcI#4k>|=rftqvYlgrjBZK83?=Vu zlOz+3cxo=n-$G(f z9fSAbVRqYxP>{xqiYb%`#QR{l0+mFUZ@~_ zCq?b@XgTDeiadwpsepeNp#>wKBD9`E=L}ma3Q!`%KsK%QRxzrwZ?~PM{=(q-6xiA_ zj~%xuW14Px7Aba4Zz=ZRuLSC^RL)4=xXB6d|L58TRZb@38Q5rX2MPSB7h{S1{LD$Kxb=J9bmA0&dT#6e~f zLDrH%R^lMDRBo;Z2;UzDSx*Gnh=a^0f;>tF*@%Nw31qPc2wz|Zd5kCY@s|2#v1BCxU3{oeA6n6dt3ZwUB literal 0 HcmV?d00001 diff --git a/bin/com/forum/units/UserRole.class b/bin/com/forum/units/UserRole.class new file mode 100644 index 0000000000000000000000000000000000000000..5e44335571edb8f14fb467a0bf977c7126ed36b9 GIT binary patch literal 1035 zcmaJf#j5PgdQgX1KWv@}4{&$IzTp;T=zpeQJz5(*y@4oIjc<2uxl!Ih08@vmBP zNYtuP&;3zVXB`rJAwGEa?Y=krW@rBX`*{uEJ>H23Fl=hpsCa7G?x^UFjfqq2I=bDl zOkG5fVeL#kSBs`P9u{k3cf=5?9yRMNhE!vjuFMc^wvTF^>Pfr95bP>73M;i%x4F}+ zHo7&1A^rJ2d8DG526@?M5Hi^w%Izax2Qx0(R0u~WhnS%^H<0&e`H=rUPcyg7(V!=ho@F2;%2T-KOd69Ys z#8SLtoIyQYflT~WLONmoReyo?<7>ht)-SN(fk#0PBs{Pg@<1~Dn|Q(u8%jSoLqh3? zW=JX*NdKTD0c_J>qR6k=B|}fVU4BC2H@~t(``oIS+uORt(}gfh1k6R;A5rj(dnf15 z@nSCjNcC}fVup18Sjb)XE8J64NMGS){yUxA*tp5Y?kq&9Z@GDn9C3JlDb8|N*!u&v PTo*vW%UQ%*FP8oTiGkXu literal 0 HcmV?d00001 diff --git a/bin/com/forum/util/Utility.class b/bin/com/forum/util/Utility.class new file mode 100644 index 0000000000000000000000000000000000000000..067e0b49ef46faa75619f4667e67203d110b1f02 GIT binary patch literal 833 zcmZva%Wl&^6o&uFrA}Pu3N7VY$~6h4X2C892?dZUnXpLcBD;w*gei_)oH0^gg=gpj zHljU&ySw~p5lpx9K)s`&D{4B z3Jmo_{+YW052xXpoWp!O+Gf zY*@HVs&mOu&crARg@a98VOS^NBE-;Yr7&~3fr@1~?Jn~d%C3#8xNhOv3cAMw5l(pQ z;0A7{=>2f6c<7VSPKGu<|8bV#i*y6uc5oXt1}pQ&(2(;#0x{dhiuY+S6`(M32bhsczMI!?QPGs0C9?7QsgMC^b_^tV7G)Bk}+i*_!}uu3WbWWjmg!L)UAEErg=(jH_Z0WPpjbG` ipHMJwEL4r(3Ki7_>q}M|c!XWjJvLgV-R#ja2lp>>(6-C~ literal 0 HcmV?d00001 diff --git a/bin/discusion/forum/activiy/UserActivity$1.class b/bin/discusion/forum/activiy/UserActivity$1.class new file mode 100644 index 0000000000000000000000000000000000000000..eac5f4d2cb5d0d4e2ca466548c99d4971089cf95 GIT binary patch literal 1116 zcma)5O>fgc5PciFF$qqZmI9$bDG=Ixv^7OYAf>9P!iR!f5Gu`m<1Xoz)DHH#QvVI& z!lf4u6o~`k%#T9MZhb(lBE{BdXJ%*Kn;DP){Qdb0z+-q0atup*G6~W|Mxpm1iqk`n z2TC5vV{bPR@s`omac$j!%}_buN8B6oaNxb|ABaFX$TQ3tZ>r?b>qLhm9&;7N40*LL zliEXK@F$^YQ^tl2rP^d@)F(@6^cd_;v?mH+D7kQOsR#?xE()kHSalsR?aNTSNe}xX ze$V?u!7%Gb0U!2wEVZ3EZCx(IWX!d7D%S~2w*>g4?vtL)FQpz5?_DYqMMG_mziD)f zsAAs14TkEtd>1!yi=jLaYIoF&l;}ihs7!BNhTNxhhWYUnI^q$HW=HYh<2D~({Vv#W6qjWun@8JKSy6j-IA*NJ`Aqkg937~*rgGs=ILr~FSGbD?f-LN|wSglnt zUbPilZ`69Vr1h#|8=|)M)VA8&9`>}Y_OkbVc+l^EGqbzNE{Dg?%=_Q_-}hhN|7P;y zJI_1^V2N7dN0Gwp&PXzxN=D+b#+~s*s;AKm+mXIVx^Yv|O03lPcG?f0Ld7n#&uomE zv98ATJ9b%NTVeFFNGxKnP#9HHyIH}vI^JmoF$yIHiZNQDyd@H|+EP6`ti(ohN7PcN zY>9`>=w>q!k!N?%XLm=E3UgXc1WS{`m}tB!67#?*1lQ~hTfH`INcu5Wp-Ll-#2cH} zXCx)4!gxQ%4YQ*oowThU1J#&78{#RNG`_`Kyde>Z*&TMmGJBc=n4~acixmyWd#sQh z4>?H1Z6WQpkcJe*Nto)#lpF{-S`19XbOnE}D2~RsSBSt4eV2wxFbgO9F1-F(WY@u4Y-Y(+pb%=3uTu(T;?|#Ee0! zQag8A39GZ+GCQqAQxLVN^J5-2^GqH-!@zvhD+K6)P6?#KxSHC0!~rx8$J=WrlY8Qc zPT~z>Ar||wNMT;qV=n9zQzzL-+xjA5OXKfw?hP!#DfCm9WlIt&EGyurd>pkcS(iAv zWp$Id>@)+X<6TTpaV5bPo*4jht95HU73z$KVsSgvZT2zP-B!p9hvTW3-4JTGcBibQ z9Wpz6A~DGWV)UdTj%1B=(t_Ueq9?hZtspnrlzZM{T6frH_>xw$SC@q!D~IQ*&JRCU zGYo|c<@zuqWm|359x*(CwF+aMH1aSoA_2TRGwf}xhu0~TIkPP$R8)_(C>UG1O*@o` zMgd!UV?=I@VI+cEr~92XH~gc^RR&WjikR z<06HIYyuR_a&MOoFVjuzpx+&rctVBcC+3zy{w9IY0U9t%sK-hs%`W<&JZV`gqfu`Q z@?@97^lUylB)vAC=rQda&fJcOfnB&np~SP7MD229%8o=ES0)l>x+Rjd8RQrzxExpb@m`jrwtkq@z?Ha)JI1WN+;KSDIX$n* zkE@Agq~|@q`f&}jC+k+H%vYr%Q8I22{U`}yAFelW1K!6lkv*C_iNu4d8$nB)Z9wL} z-@pfO6T7V0+iS%*uRb>|Ts--N?C!>%bu&ZJ5c05vHtH;{XS(*|L!$eZ5h}eFlvi(_ zN&$bHf!lRkAb71&)ZJ;|EC@54t7d{mOAjI%cNZl++h(6DScAoxEfw9|Za4@j&ZHt+}@Whr!<$u=EU z=H50Tvd0a4LJld0mwyhC1-!>X#NiplMo~TdB$Mv-PBRM~_YKd}WqBNwQMH1~N;)E4 zG1E>ZSQ|?UCi*cI)Nc0UFb_};`;f6*@+owdo4qiIK|C#?ct)YN=EM$NQf8mVbAEh= z<)1B_)$wSQCqeF*lxqE~R+trQUdVCB>UdADsq0hIR9Q+#+w(*KUr?wULA^13dX$4u zXpb4QrRO@UbURY`l7Z*(0&|Ty;wdWJjXWu9>nnKCkFP4sKMq|x*_a{gm+&=)%IxfP z#uXOV96hXg66tu_?DB-w8%=MFdw>G?CJXWScI##00O{i2CZ}&8UphxbEehgge9w>X z(uv2ht6czO%=$ilK<1=bdRSpiF3q@{kY|ktz9~MT12P~l?^kD0IHj|ToEOMRO<*0cxk7oG>?G-)O* zeVjB?c6U4xNwUSs8-#WakC%~TrUM4?H~hnozmxK^Jw*C}fq&v(#Kh`JS~75ymxpy? z>wlyq{wubw%LnU4gYDr>g+?dq!tq3cWt_ng+R1aB9A@m(kLQ*AS zB?EYegvDb+Xis+}+?|;iDp0mu7?M2YG9BEPNxe!bzJp2^a1|;nJXVBqxFmb<2q?at zR`DPq+S56w2)`n|k005qWv6sd732DVDj|l35NWB$BDb*XaQHs*gE9;?MwKz|9J0}U zhYcYgo7UD;OUL)C3N|Ih_s=Qf_-p`&9RkQcvs9I##!2fb(TJVCPRUtp*cL-;?^cU9*JrGbQDbzTD*EBmE?!o14K+*E94kr$$~Cuf_8YBk&||iV)L8WI)GA< zFQr@%jM4}i^xoA7U;_7;$lpnrj>-H$aS}f-Ou+(7C9_V$X&gO+<_Xey4h9$L1b(Mj zhULUKhwE1Gu81qg$s0ZQID_-cQS=T@^W#kY-zq<+o>joOr>VA>(^m`1H5n_kQD`Sp{0LpV3<;d$E1*|hIu;+RAG=F*xP-qoU>mYjk*EG6Dm zd=lH1I1pUh%K7ZrHjV2Y+v@o_Y7?y-#dRgvj4e7o=M^w0%{h_`a|Pqp3}kK4`I$#X z=@3pG!i8DTlc@}JeSq)fQh8(pSkP{Ks0hmTWojL#tRtAuy(M~6U z)KY?#1loTH-7R&4h#o+hpi2F<>Fz%t?!+C-S9Kl0_IOwdP`j0CdICA$89uw1jI#P>h z6qq|cW=|ARy&hjlw9Vb^sqT2f=wLn)qhR^v4$En zXGqjOPsel5FY5gHayEa;bbhome>zZ!je2W`UaH)!6~3NPpQV>Bt`lo!iSlo_%5}Pa zONUrErcQ76o$O}Sx?;9)v-4=rR*c6s%*6RQ_RexQ9m7aUEX2B3GTY}`_cpf|0DS`B zhgkrp4&uj$@Uw#m)(zpc0h~t=dg#{&v6%V#JN@v7jQn&Nvi_#oo?K(cQPM!$uSAN!_P1S|NxU*47YE2N+6maAR2%s2!I!4UpBgnzfxy@1gJ zPWk>%EIaag-4k5s@VY}GecWLWZP`mcPLs`3Wbw;1DyLp%WKfm6sHSr(Cq{x#{#fu9 zst8cN_`FppW@;5nKxn&PV)nKdGsfviD~W&vQ%*sZ8l|0Ya%k^T-vG{;W5V6pelE0MD%DLd2&cqN(6IxP+-l#-Ejc0_5xN^CwRukwMuWGeSO{7eG zwg|qr<&OaSG^qqotO-P(JYG3lxMoy#nAD;s74j|CQm0h=IPJp8+PP|qRG*LMRhv_AB3~+F zUct!#9~ks`I_OhJ3XP0#WXat^BW~r<=QbWCZfDQCg9Lsj+rV9<{sTA%cauo(K|Agx z!Q96Jy`RPR0E_NH#PJZ*{9sPWrCsC8_!RncS*yVTFhy3(%`M XRm|q27Bc!pYLQyZtJL5iul(o#(PA)i literal 0 HcmV?d00001 diff --git a/bin/discussion/forum/units/service/QuestionService.class b/bin/discussion/forum/units/service/QuestionService.class new file mode 100644 index 0000000000000000000000000000000000000000..5ca3b35699aed4131f4d5e75edd02f93a846c5b5 GIT binary patch literal 2348 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 Cl)Mc9 literal 0 HcmV?d00001 diff --git a/bin/discussion/forum/units/service/UpvoteService.class b/bin/discussion/forum/units/service/UpvoteService.class new file mode 100644 index 0000000000000000000000000000000000000000..cb180829cb4699ad1a1e85ec1a307818c60b3ef6 GIT binary patch literal 2807 zcmb_eNmCm~6#iO^M~E?-jW8InOuPsQA!9q6g)x}K3J%7L433?3kj5~!7|EIuFYQUP&LK_}PU5OmP8@Q|FGyAXNXXYcBeMu9m8ww1%=GJi?|tukUw7;Gzkm4^ zz*&5*As{eRw46fCajdePxm&K*mNGTla-EE0R+p`UnVGFDmt8aOjWmP=+U^<4My6!g z3z@6)_soJTpw-kWN1$_B&DLD2l$oejjg@K3akBzVd27Ko+*;KX$n3Uebh=Pp+J?Z( zoE@WgWVBGS2y09rm>8TB2u+rYriT3j2X@I9g^pGoZHNl&8&!@?5a`em#y)}8Y0EZe zYD@EG^`JLA=ut&ZkUzQN_Oy$%yUG?A;bm# zzp#WqfMXh75;(N8t#wQ~j?4ZWuiMiofhcXyFJudjeQr0HLOvM71*D5jl%saM#WcbvsaFyi=i6@;WzlQ+zVqmE?}Hs zEZ3|WZdoQu3~t$lQ@%ahjEi_f!z8!F=Dw=W>Ua~E2-P+plKg}92wP5qtcJH3duPi% z-A0kaWgTy0nn)H*S0NPWW}KZ49(W06M#oiLV@DPZXGZ1a0dPkkT$KVA=-R`VD+*Fd z0%D4XfX5bP(XiaZM&R$T*}LKpIJFnOjnV46H-~q1yodLRoTbVpGWjl*s`g4|KGg9M z41s1YuWu27-d$Ykv&39r8+Kxr5oN$u`M9fN0gH_4Y>nF2SkH@~^61Ioo{sw{u}}2# z`?R;ll!vXOj0(%8hgWWQV-{7dm!Yb|k^4W)^;6uHIn;D4OG}iNN$y$Kq*=#99V_^R zTb?KCj{WFeKRm_glrPt+1@n@nj&rZ6dGFF1mP*D^9&|z8dpw%uEx@$H-$mC6bCqU48Wb8;1jA55yHAW9__!x{yE*nH!)kj$;UE z;@#wL*hdRmxAE6Q{-W~o_F?@=_+bVf_t-lZTE$RzsLtO^dL4b~HQXV8oqT_g`VP%} zPYpdrIP^p=RDAvse8LzWoiP<}g!G)2R~CQHjbM!Jl;D!8SK|s2hZt9Fmf9RwfCKdE zSEL3NspAN4P}E@!^BM+7t;g&JIoPym$SJ-zSkk7|Tgh7a1H!NMYt|~Yl6a0BH&AgV zomzvLrar7RWxT|~9`N5K6?}bsYjdl3Wahw literal 0 HcmV?d00001 diff --git a/bin/discussion/forum/units/service/UserService.class b/bin/discussion/forum/units/service/UserService.class new file mode 100644 index 0000000000000000000000000000000000000000..e7a73c66e73571672a958d111ad7dcb9daba18ea GIT binary patch literal 2299 zcma)7ZF3V<6n<`#uxYx`7ura9(Evr7G;L5pg;by*D4Lc+XtA}vY&T0;*zAUVDfFkn zAK)v(Oi-C|{8VTB?7z{mKKJgXP>3_+!`*w&JulCB?l~ua{`>2108Zk*h8}@Z!w$?S z2yD---17XWS&3Xb3@U-;uiK_oS>UD~?=_?a2JRT^M#VAQwaV4iJC+#=WFqPW0wXnb z7lpP{nelyNqh<$TRiL+SuenAT`If+BH=XI4={0vmmr<){X`7uk9h-p83Z%x1ivsD3 zUc=I`TVQXOXgTQU*D-*cz^-X!*b9Ln9U1Hr=&#wXH5WBkE&qnG>JZOR%`**W(eQ0~ zR>B-o=x3ntw#}rRU;=(Q(~#tZH#FhXXjI z;h;eN6)j2m0v9{n(D5$b6Bx9EIWL@x9B0ODTxzz$4L(p8JjLZ42|BFf2#yM9YgQOz zFLl%H{!SW>2@Jo2Mir2BlfxML}2G5c_wHCdu!LhZ&BctYfmHKW_xVea~-5 zc}2$wDbLc+rKVv!Quv{ck8tv(bIFvzq4BP0w`m;1$2vZdg_5DOE6V+89cQE@N6AI? zkQD2f*6|r+1saXUYpCNMs1}!daUK^m%sw}cm5?8jv%l1wRmSne*7a&y%7Ddt|=6V1B z)66E4dMwqhI&7ES_0TZy&Kj+x9jCig-J6h#-QCGrSkkeKZ&?d0^5pX`s;mEJXQxCE{Whs+mp^uUY%H*%_1@xuo z*z*j7Kk?Xuyb5&a6a8ywJUI0%n(SkiJb&I5C}$`do9_EnX43)i@l?6z7xoeT-uH7qGs5 z$5?G*69)+7F5hA05%zHF$}MqCJfYS-fk#_^y#g?=m?;ue2~(`I6U_fK=e}euuXw2@ pAcx7PgeDZUDWtZDDy6Z3H8udYh) questions = QuestionService.questions; + if (questions.size() == 0) { + System.out.println("No question posted yet"); + } else { + sort(questions); + for (Question question : questions) { + System.out.println(question.getId() + ". Question Title - " + question.getTitle()); + System.out.println("Question - " + question.getMessage()); + System.out.println("Upvote - " + question.getUpVoteCount()); + } + UserInterface.questionMenu(); + } + } + + public void sort(ArrayList questions) { + Collections.sort(questions, new Comparator() { + public int compare(Question q1, Question q2) { + if (q1.getUpVoteCount() == q2.getUpVoteCount()) + return 0; + + return q1.getUpVoteCount() < q1.getUpVoteCount() ? 1 : -1; + } + }); + } + + public void upvoteQuestion() throws NumberFormatException, IOException { + System.out.println("Enter question number you want to upvote : "); + UpvoteService.addUpvote(getQuestion(), UserInterface.user); + } + + public void replyToQuestion() throws IOException { + System.out.println("Enter question number you want to reply to : "); + Question question = getQuestion(); + System.out.println("Post your reply"); + ReplyService.addReply(UserInterface.br.readLine(), question, UserInterface.user); + } + + public void deleteQuestion() throws NumberFormatException, IOException { + System.out.println("Enter question number you want to delete : "); + Question question = getQuestion(); + if (UserInterface.user.getUserRole() == UserRole.ADMIN) { + QuestionService.deleteQuestion(question); + } else if (UserInterface.user.getUserRole() == UserRole.MODERATOR) { + if (question.getUser().getUserRole() == UserRole.USER) { + QuestionService.deleteQuestion(question); + } else if (question.getUser() == UserInterface.user) { + QuestionService.deleteQuestion(question); + } else { + System.out.println("You are not authorised to delete this question"); + } + } else { + if (question.getUser() == UserInterface.user) { + QuestionService.deleteQuestion(question); + } else { + System.out.println("You are not authorised to delete this question"); + } + } + } + + private Question getQuestion() throws NumberFormatException, IOException { + Question question; + while (true) { + question = QuestionService.getQuestion(Long.parseLong(UserInterface.br.readLine())); + if (question != null) + break; + System.out.println("Enter correct question from displayed questions"); + } + return question; + } + + public void seeAllReplies() throws NumberFormatException, IOException { + System.out.println("For which question number you want to see replies : "); + Question question = getQuestion(); + ArrayList replies = ReplyService.getReplies(question); + if (replies.size() == 0) { + System.out.println("No reply posted yet"); + } else { + for (Reply reply : replies) { + System.out.println(reply.getId() + ". Comment - " + reply.getMessage()); + System.out.println("Upvote - " + UpvoteService.upvoteCount(reply)); + } + UserInterface.replyMenu(); + } + } + + public void upvoteReply() throws NumberFormatException, IOException { + System.out.println("Enter reply number you want to upvote : "); + UpvoteService.addUpvote(getReply(), UserInterface.user); + } + + public void deleteReply() throws NumberFormatException, IOException { + System.out.println("Enter reply number you want to delete : "); + Reply reply = getReply(); + if (UserInterface.user.getUserRole() == UserRole.ADMIN) { + ReplyService.deleteReply(reply); + } else if (UserInterface.user.getUserRole() == UserRole.MODERATOR) { + if (reply.getUser().getUserRole() == UserRole.USER) { + ReplyService.deleteReply(reply); + } else if (reply.getUser() == UserInterface.user) { + ReplyService.deleteReply(reply); + } else { + System.out.println("You are not authorised to delete this reply"); + } + } else { + if (reply.getUser() == UserInterface.user) { + ReplyService.deleteReply(reply); + } else { + System.out.println("You are not authorised to delete this reply"); + } + } + } + + private Reply getReply() throws NumberFormatException, IOException { + Reply reply; + while (true) { + reply = ReplyService.getReply(Long.parseLong(UserInterface.br.readLine())); + if (reply != null) + break; + System.out.println("Enter correct reply from displayed replies"); + } + return reply; + } +} diff --git a/src/discussion/forum/units/service/QuestionService.java b/src/discussion/forum/units/service/QuestionService.java new file mode 100644 index 0000000..39a1b9a --- /dev/null +++ b/src/discussion/forum/units/service/QuestionService.java @@ -0,0 +1,51 @@ +package discussion.forum.units.service; + +import java.util.ArrayList; + +import com.forum.units.Question; +import com.forum.units.User; +import com.forum.util.Utility; + +public class QuestionService { + public static ArrayList questions = new ArrayList<>(); + + public static void createQuestion(String title, String message, User user) { + if (Utility.isNotNullAndEmpty(title) && Utility.isNotNullAndEmpty(message) && user != null) { + if ((!containsMessage(message))) { + Question question = new Question(); + question.setId(); + question.setTitle(title); + question.setMessage(message); + question.setUser(user); + question.setCreated(); + questions.add(question); + } else { + System.out.println("Asked question already exists with same body"); + } + } else { + System.out.println("Any specified field can't be empty"); + } + } + + private static boolean containsMessage(String message) { + for (Question question : questions) { + if (question != null && question.getMessage().equals(message)) { + return true; + } + } + return false; + } + + public static Question getQuestion(long id) { + for (Question question : questions) { + if (question != null && (question.getId() == id)) { + return question; + } + } + return null; + } + + public static void deleteQuestion(Question question) { + questions.remove(question); + } +} diff --git a/src/discussion/forum/units/service/ReplyService.java b/src/discussion/forum/units/service/ReplyService.java new file mode 100644 index 0000000..33e6629 --- /dev/null +++ b/src/discussion/forum/units/service/ReplyService.java @@ -0,0 +1,62 @@ +package discussion.forum.units.service; + +import java.util.ArrayList; + +import com.forum.units.Question; +import com.forum.units.Reply; +import com.forum.units.User; +import com.forum.util.Utility; + +public class ReplyService { + public static ArrayList replies = new ArrayList<>(); + + public static void addReply(String message, Question question, User user) { + if (Utility.isNotNullAndEmpty(message) && question != null && user != null) { + if (!containsReply(question, message)) { + Reply reply = new Reply(); + reply.setMessage(message); + reply.setQuestion(question); + reply.setUser(user); + reply.setId(); + reply.setCreated(); + replies.add(reply); + } else { + System.out.println("This reply is already present for this question"); + } + } else { + System.out.println("Any specified field can't be empty"); + } + } + + private static boolean containsReply(Question question, String message) { + for (Reply reply : replies) { + if (reply != null && (reply.getQuestion() == question) && reply.getMessage().equals(message)) { + return true; + } + } + return false; + } + + public static Reply getReply(long id) { + for (Reply reply : replies) { + if (reply != null && (reply.getId() == id)) { + return reply; + } + } + return null; + } + + public static ArrayList getReplies(Question question) { + ArrayList repliesToQuestion = new ArrayList<>(); + for (Reply reply : replies) { + if (reply != null && (reply.getQuestion() == question)) { + repliesToQuestion.add(reply); + } + } + return repliesToQuestion; + } + + public static void deleteReply(Reply reply) { + replies.remove(reply); + } +} diff --git a/src/discussion/forum/units/service/UpvoteService.java b/src/discussion/forum/units/service/UpvoteService.java new file mode 100644 index 0000000..449c139 --- /dev/null +++ b/src/discussion/forum/units/service/UpvoteService.java @@ -0,0 +1,66 @@ +package discussion.forum.units.service; + +import java.util.ArrayList; + +import com.forum.units.Question; +import com.forum.units.Reply; +import com.forum.units.Upvote; +import com.forum.units.User; + +public class UpvoteService { + public static ArrayList upvotes = new ArrayList<>(); + + public static void addUpvote(Question question, User user) { + if (question != null && user != null) { + if (!containsUpvote(user, question, null)) { + addUpvote(user, question, null); + question.increaseUpVoteCount(); + } else { + System.out.println("You have already upvoted"); + } + } else { + System.out.println("Any specified field can't be empty"); + } + } + + public static long upvoteCount(Reply reply) { + int count = 0; + for (Upvote upvote : upvotes) { + if (upvote != null && (upvote.getReply() == reply)) { + count++; + } + } + return count; + } + + public static void addUpvote(Reply reply, User user) { + if (reply != null && user != null) { + if (!containsUpvote(user, null, reply)) { + addUpvote(user, null, reply); + } else { + System.out.println("You have already upvoted"); + } + } else { + System.out.println("Any specified field can't be empty"); + } + } + + private static boolean containsUpvote(User user, Question question, Reply reply) { + for (Upvote upvote : upvotes) { + if ((upvote != null) && (upvote.getUser() == user) && ((upvote.getQuestion() == question) || (upvote.getReply() == reply))) { + return true; + } + } + return false; + } + + private static void addUpvote(User user, Question question, Reply reply) { + Upvote upvote = new Upvote(); + upvote.setQuestion(question); + upvote.setReply(reply); + upvote.setUser(user); + upvote.setId(); + upvote.setCreated(); + upvotes.add(upvote); + } +} diff --git a/src/discussion/forum/units/service/UserService.java b/src/discussion/forum/units/service/UserService.java new file mode 100644 index 0000000..4ea7255 --- /dev/null +++ b/src/discussion/forum/units/service/UserService.java @@ -0,0 +1,47 @@ +package discussion.forum.units.service; + +import java.util.ArrayList; + +import com.forum.units.User; +import com.forum.units.UserRole; +import com.forum.util.Utility; + +public class UserService { + public static ArrayList users = new ArrayList<>(); + + public static void createUser(String username, String password, String email, UserRole userRole) { + if (Utility.isNotNullAndEmpty(username) && Utility.isNotNullAndEmpty(email) && Utility.isNotNullAndEmpty(password) && (userRole != null)) { + if (getUser(username) == null) { + User user = new User(); + user.setUsername(username); + user.setPassword(password); + user.setEmail(email); + user.setUserRole(userRole); + user.setId(); + user.setId(); + user.setCreated(); + users.add(user); + } else { + System.out.println("Username or email already exists"); + } + } else { + System.out.println("Any specified field can't be empty"); + } + } + + public static User getUser(String username, String password) { + User user = getUser(username); + if (user != null && user.getPassword().equals(password)) { + return user; + } + return null; + } + + private static User getUser(String username) { + for (User user : users) { + if (user != null && (user.getUsername().equals(username) || user.getEmail().equals(username))) + return user; + } + return null; + } +}