From f741311a246f4a40769dd18112f8e76a647d174c Mon Sep 17 00:00:00 2001 From: Noor Fatima Date: Thu, 21 Nov 2024 21:18:32 +0500 Subject: [PATCH 1/4] Added Analysis Manager BL All Eveluations TF-IDF PMI PKL --- .project | 11 +++ src/.classpath | 6 ++ src/.project | 17 ++++ src/BL/.classpath | 5 ++ src/BL/.gitignore | 1 + src/BL/.project | 17 ++++ src/BL/AnalysisManagerBL.class | Bin 0 -> 2010 bytes src/BL/AnalysisManagerBL.java | 147 +++++++++++++++++++++++++++++++++ src/BL/FileBL.class | Bin 2645 -> 2652 bytes src/DAL/.gitignore | 4 + src/DAL/DAOFactory.class | Bin 152 -> 476 bytes src/DAL/FileDAO.class | Bin 2182 -> 7772 bytes src/DAL/MongoDAOFactory.class | Bin 286 -> 441 bytes src/DAL/MySQLDAOFactory.class | Bin 286 -> 441 bytes src/DTO/.gitignore | 1 + src/DTO/FileDTO.class | Bin 1642 -> 2352 bytes src/PL/.gitignore | 1 + src/PL/TextEditorGUI.class | Bin 3346 -> 12182 bytes 18 files changed, 210 insertions(+) create mode 100644 src/.classpath create mode 100644 src/.project create mode 100644 src/BL/.classpath create mode 100644 src/BL/.gitignore create mode 100644 src/BL/.project create mode 100644 src/BL/AnalysisManagerBL.class create mode 100644 src/BL/AnalysisManagerBL.java create mode 100644 src/DAL/.gitignore create mode 100644 src/DTO/.gitignore create mode 100644 src/PL/.gitignore diff --git a/.project b/.project index 57e74ed..cbd0aee 100644 --- a/.project +++ b/.project @@ -14,4 +14,15 @@ org.eclipse.jdt.core.javanature + + + 1732205428671 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/src/.classpath b/src/.classpath new file mode 100644 index 0000000..3f3893a --- /dev/null +++ b/src/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/.project b/src/.project new file mode 100644 index 0000000..df14eba --- /dev/null +++ b/src/.project @@ -0,0 +1,17 @@ + + + JavaTypers_src + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/BL/.classpath b/src/BL/.classpath new file mode 100644 index 0000000..ac37fb2 --- /dev/null +++ b/src/BL/.classpath @@ -0,0 +1,5 @@ + + + + + diff --git a/src/BL/.gitignore b/src/BL/.gitignore new file mode 100644 index 0000000..83879fd --- /dev/null +++ b/src/BL/.gitignore @@ -0,0 +1 @@ +/FileBL.class diff --git a/src/BL/.project b/src/BL/.project new file mode 100644 index 0000000..a868cff --- /dev/null +++ b/src/BL/.project @@ -0,0 +1,17 @@ + + + BL + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/BL/AnalysisManagerBL.class b/src/BL/AnalysisManagerBL.class new file mode 100644 index 0000000000000000000000000000000000000000..c104697f054f0b68ce05b0ecf7f8e2fed953cebb GIT binary patch literal 2010 zcmbVMYflqF6unameOLui5b(8t5730hXri%50z#9*f+SQDK2EojGBBN~v$I6_;1BQ* znP{Tl{ZYodr49?7QbIO6yE8d+?z!jQnLmGj`~raY@FD{#0^^|$ipzd+Nm6kX@^FJn z+F*Lw&p?{M@IF1HML}hw__4On0z+VMflF={30#|<+aZwtpz16GIRZnc*j25S&cby9 z{FBryRN|1;y+AcvTu{T6^jccg1Z%$Y^113B^Xe=RR3oNEg9D83O)vY?UR|-!lgfBa zYJxq_Adr1&p^79B_0JW9XAOI%XAF=ZCx=QBmfC;jXDp?8tCY^m%AXb0=cj z3mdeBn{(T|A*qQpD)@RHztF9H@jQnEb2dm%K)aSJD#C0_i}++=95wf?5_;N6cqz~- z441_Jd~c$EL4;*x)pBK}OyHHn{Din3mNfhCa^!S*W6tJHpkQThZB($Fc3Ne+S=Q`x z#AI+pV8)@VyP#|RQ4aNqLRX|=czq;hhPP!@mI-#4&@j*SJdXoBs*f-I4rvDE!7*3WjiuF@Wzd zj)fBx+=7wz+HJUls8Re+!I))A;rxW@u7hd7$uw~Vrco!;B;2!_?psZ9*1a{&IGG+? zf$61#DFqMVk=5i`O&9yL>SUUNY0ETYnbH?#x9MQQmP}}RVwo=1wCi9>!Bco6?Rzz+AhNp8o@fFy2D| literal 0 HcmV?d00001 diff --git a/src/BL/AnalysisManagerBL.java b/src/BL/AnalysisManagerBL.java new file mode 100644 index 0000000..b53e783 --- /dev/null +++ b/src/BL/AnalysisManagerBL.java @@ -0,0 +1,147 @@ +package BL; +import java.util.*; +public class AnalysisManagerBL { + + public Map> analyzeIndividualFiles(List allFiles) { + Map> individualResults = new LinkedHashMap<>(); + + for (String content : allFiles) { + Map tfidf = calculateTFIDF(content, allFiles); + individualResults.put("TF-IDF", tfidf); + + Map pmi = calculatePMI(content, allFiles); + individualResults.put("PMI", pmi); + + Map pkl = calculatePKL(content); + individualResults.put("PKL", pkl); + } + return individualResults; + } + + public Map> analyzeAcrossAllFiles(List allFiles) { + String combinedContent = String.join(" ", allFiles); + + Map tfidf = calculateTFIDF(combinedContent, allFiles); + Map pmi = calculatePMI(combinedContent, allFiles); + Map pkl = calculatePKL(combinedContent); + + Map> overallResults = new LinkedHashMap<>(); + overallResults.put("TF-IDF", tfidf); + overallResults.put("PMI", pmi); + overallResults.put("PKL", pkl); + + return overallResults; + } + public Map calculateTFIDF(String content, List allFiles) { + Map termFrequency = calculateTermFrequency(content); + Map tfidfScores = new HashMap<>(); + int totalDocs = allFiles.size(); + + for (String term : termFrequency.keySet()) { + int docCount = (int) allFiles.stream().filter(file -> file.contains(term)).count(); + double tf = termFrequency.get(term) / (double) content.split("\\s+").length; + double idf = Math.log((double) totalDocs / (docCount + 1)); + tfidfScores.put(term, tf * idf); + } + return tfidfScores; + } + + public Map calculatePMI(String content, List allFiles) { + Map termFrequency = calculateTermFrequency(content); + Map pmiScores = new HashMap<>(); + int totalWords = content.split("\\s+").length; + + for (String term1 : termFrequency.keySet()) { + for (String term2 : termFrequency.keySet()) { + if (!term1.equals(term2)) { + double pXY = calculateJointProbability(term1, term2, allFiles); + double pX = termFrequency.get(term1) / (double) totalWords; + double pY = termFrequency.get(term2) / (double) totalWords; + + if (pX > 0 && pY > 0 && pXY > 0) { + pmiScores.put(term1 + " | " + term2, Math.log(pXY / (pX * pY))); + } + } + } + } + return pmiScores; + } + private Map calculateTermFrequency(String content) { + Map frequency = new HashMap<>(); + String[] words = content.split("\\s+"); + for (String word : words) { + frequency.put(word, frequency.getOrDefault(word, 0) + 1); + } + return frequency; + } + + private double calculateJointProbability(String term1, String term2, List allFiles) { + int count = 0; + for (String file : allFiles) { + if (file.contains(term1) && file.contains(term2)) { + count++; + } + } + return count / (double) allFiles.size(); + } + + // PKL Calculation (Pointwise Mutual Information - Latent) + public Map calculatePKL(String content) { + // Tokenize the content + List words = tokenize(content); + + // Create a map for word pairs + Map> coOccurrenceMap = new HashMap<>(); + Map wordCountMap = new HashMap<>(); + int totalWordCount = 0; + + // Build the word count and co-occurrence map + for (int i = 0; i < words.size(); i++) { + String word1 = words.get(i); + wordCountMap.put(word1, wordCountMap.getOrDefault(word1, 0) + 1); + totalWordCount++; + + for (int j = i + 1; j < words.size(); j++) { + String word2 = words.get(j); + coOccurrenceMap.putIfAbsent(word1, new HashMap<>()); + coOccurrenceMap.get(word1).put(word2, coOccurrenceMap.get(word1).getOrDefault(word2, 0) + 1); + } + } + + // Calculate PKL (Pointwise Mutual Information - Latent) between word pairs + Map pklResults = new HashMap<>(); + for (Map.Entry> entry : coOccurrenceMap.entrySet()) { + String word1 = entry.getKey(); + Map coOccurringWords = entry.getValue(); + + for (Map.Entry coOccurEntry : coOccurringWords.entrySet()) { + String word2 = coOccurEntry.getKey(); + int coOccurrenceCount = coOccurEntry.getValue(); + + // Calculate the individual probabilities + double pWord1 = (double) wordCountMap.get(word1) / totalWordCount; + double pWord2 = (double) wordCountMap.get(word2) / totalWordCount; + double pWord1AndWord2 = (double) coOccurrenceCount / totalWordCount; + + // Calculate PKL using the formula + double pkl = Math.log(pWord1AndWord2 / (pWord1 * pWord2)); + + // Save the PKL result in the map + pklResults.put(word1 + "|" + word2, pkl); + } + } + + return pklResults; + } + + // Helper method to tokenize the content (this could be improved with stemming, stop words removal, etc.) + private List tokenize(String content) { + String[] words = content.split("\\s+"); + return Arrays.asList(words); + } + + +} + + + diff --git a/src/BL/FileBL.class b/src/BL/FileBL.class index 10bc07be439164692e512b528b98f14d095f7840..edd2603103289c8df6e8aa161a4306a1f55f4781 100644 GIT binary patch literal 2652 zcmc&#ZBrXn6n<_<*<`!CG^Ira?NTu%yfoUP(DI@ILZuB!+XO0Db(XLsi~ACHZ#wc1 z{0sUU{NM+N&a^Xj#t;4Ak8(Ws?vkVsUq{DbhP^N6Jm)#jIp^k=U!VO1UoIyFD>$O~op|7x(3$1CpK>M})dTy&w`J(iw zn19HSDzv@J+_&7CFk1E8fEzB~HteREzuL+_&HT6~$IXCkxB5MTB7O$CDt z18tnV?|Xg%DaP_!u5SjO{lwhYtDe)aY=c{#t2caa&o-Ulwyq|L*Sb;Vo`0lQ4cGO! zzGvz!FYf7v&W{?Vnyl1K-7$IHBP`!ExJWSaoXF@0zUSziOoXu>%0n;*rXT18B5oWj z2q?kOqV4=QD3C4(R;>$9HM!}zHLnfY#YWIL$z}7X{D3NR!vBx0RSaNAgN92CmnO~@ zOcY|EV7X?o>Fk+)#UO1(Wxc9lZyUZP_R(RS*R6oze4*7sRPMpkax(N!WIE_AB=9D~ z&;MpI{~sk8)G$}k9}L&Jh}lKnU2@BRT{Rn`cLN1isSL8)gRkr?)v(=lD%il4v@5$x+gfL4*kP!bI9YdD8q6?3?yV4fPO<8{&S7H%`#`b(moO({b%C&ar|Bs!E;M223Y zGB>JUZW@iKhZ8jX`(Xjcy2PT!t(4^ZNMGvQ9K%RE%`U0UVO7I2KBOu)8~gOG2y2nz zx`s88k-Bf%W_bKN1Gp>9?`pV%D`ajt4bSHx!{LabYkAoN!p+_{czq#5WhydUlx3ou zjZ&*F0_nbndniP52nXtdP_S2F7&O}oc+R#(Fq-SsNv|}yWoHX?N8_C=TQ%3Wsqb)M z`X&0N!`-*&dyec*>bcTtIkHR6z<$eXQRTB1`?t7OzAB@rqnnK}g7wZ*S+BXWr-De|Y^C0B*w_2XX|CBr5P$d~aQZe8qQQ zoWRsG_JVmKi(6iG`xy^30jG)L)k>8>!8b@eE~4)0+Ir=YU;nrIcysL`foXrJS<_0y zEd#nM<3zJqZ?Uk;^Kh8JArY~N5tvvKvCzu|#!BTa0^@gOgF7%qU~y9$fM*Ibqn=2rwty2Od+Vlg6FKo>D-DxM;nqSG?to1 zOb2bM5y)S5Fu2`7%*6tNGaeCjq|$V?;?sb|Ms=Ihz6X0D^{N%p%alb%wWN&doep;k zn9Fq*XsLES12n-!T(>30uQ=1D3O&tInKqS-(y$CG&B}@HHn~cSH4|_ok_3yA+Qqo~ z%5LEsJBk%=ik2lBx3D4OmK>V4V0NcwW2g4O9~nJb6e-GDu-%rwfU9CF{&(eaVG@2U zLJ^J;I9A#}lxEl_eG&7`ZnVu+o#FhL>6HNsx0n*~gT+afXOJ!=BTdg{{_ByhA; z-c_u{Je(%*ZiJy7xxnA2uL!tVtfnUjT(l(AlH#YRw)QgM9kZhn2j;L8=~her3q9=W zfy{yP1m-gl54uX|9dA?Cx7v`_qY2cR29CRBz&{t6Rnu(uEJiJ-v?OQ z-wMm91Hd~6Zuej6_~|WfWc$003qFBa!0#r0 z$aDBR1QU2V0S@HxwvgVs>A46;@a8DqTthU$r~3vbpG^Po3TFOKaX;bzL@FV09M8oJ z1wX?t292yIdkmLSdwqse7KW24Lk{%_oPo3G8O8GiK4;**L32&EWFUx42D50*s6pV5 zsNj;DD+CAK-V#CiM#ap7DuTwIzSUZ3AC3^b+)K@JCAKWaRHYdg#Be2Xrd1?ZnqT6e zx>zwBGb)I-P)6t@Nf_?rn)a=y4vrPeu~Y`9#LyKsmS#_xb@QKgx&rv^AH5!!*LDj&_GZb?Ivk=!@c*p(Of1&H(Mj*lHG06i0K8fb`i8fMTuAv&0W0{ zgM^tW7tE$-d%C^QMY$7(2!grVXv&;mkM|Mx-J2BzHc9&r03~bf5GuCzY<00ygLm*B cTEQ#SJ`1L4cgKKTCxzmEss*Qoa#kqqAM^Zoj{pDw delta 74 zcmcb^JcCi>)W2Q(7#J9A893P)m>3y^ii?uCoUGqNx;urja#H8C=<14$+Z4gkW@4x<17 diff --git a/src/DAL/FileDAO.class b/src/DAL/FileDAO.class index e33291c754f2f2b03003e274fef44a4b186a338c..39f214f770896fbe6d7d197f8392fd1e6bbb7c45 100644 GIT binary patch literal 7772 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 literal 2182 zcmb_e?Q+{h6us-3NHH#H)0WUeixMD>`G^XEK%J0cYIlGUafzLD$RB1cE%pXkYot|4 zUW8X+24>(tufV%7oV6X>;BAIs_#^ph@1A?^J!g0P`=3AmN<<&irw$buEoEuw*K2|Q zNXDXGYdTb9bmfFU<$lbQuHWpOh)^@Sba)UjS`MZwEuG4wyTj=6LzQHjC;EuTxo~Nb z(fUc$39J3H?EARt`>_gn+*6sZZf)J$_O&?GB9dCAjEaY?#(_&^{7RKV9rtmq)q2uA zsJpbph=5*iJgOZA?Qfb-_8SL`7ItMK^&S{)RF1Iip^Ahe33MKMs>r zWGa3tA}>_^fsDD9D)9!X>cpa-RlU+;yC=LzgfUN%G~nTPyeqsl%w)}rl*qh9X|K<9 z*z+_p#pwV8na#umH%;~kN%jXS)n2{b^g^DPy&d75b0{qi$825mwDP#8&j#XOW|inV z-7M2py2a?m#=J6SJWGL0#D3oIh_ubov60ZIal}(;;_=6#?#YbN)!-j)FzR-NhQJA$ z#^4yOY*a?2pshb$KxV0N8j69*${czPoQ8s!wANR_WX+{F7_D9`3sga2& z51z8MIN!BH72`i+;7o*hD)pJauUdK7tHoV~u-Bh(0p~Cks9;oKbl*~8zQFvK$}xNk zoM;4d+X7Pw#=`Ho9--?%Xk`ebLqW;XL*!Gx9QIC+pFZE>MDL0v9e~tdfkF`(}Go?b-Fu)wK2ge z0DZ*EhIPk+#pq3XYmBvk_Zm&niWj0)tY~l3J2T9tT~3*8TDsh}V%__X%)YRqy-V*| znHg_9duGR0tgWF7rdoagi~?;>bTBS>HfGm~`5}EY=I6p;_y4BEbb2;jf3V{1(5|)L Wi?M#RU={Fh!}PaDHN1^`AN&PkE6|t# diff --git a/src/DAL/MongoDAOFactory.class b/src/DAL/MongoDAOFactory.class index 4298dd2c8e90fb471b63922e61264532daa82b9d..5b95fe670df8f00f23f5cbda263ac2f24d72d30a 100644 GIT binary patch delta 267 zcmYMvy-ve06b0bpRM6A}T1vBDWugmZV1l6n!IlN_BQY=-$4WyJJ94b58_y82^BM?{ zVCSI_rVL%K?$P~*dtQRK&fxp!{S&|$;w}P)y>>Kx>Y~Tce-sNbDTU4_7uFgZVvAvZ zqpfO8xlkENQ`JQ&TwyfT);yG|Iwsz`o+-+dEQR%^7IH3fMM-1j!TD*LP-av^+Bm9& zlQVK&t7WaETkA0;f0T2C*p9G)9fo*6UH^0CY@zd$@ojs57{qD&d^tTr2h8{29|-S; d{1wrcPXYRVZmup21HVWA3cDEk3zvi;I%=CkoheaWOD6aPly)GO$hjZonq#0}`LC w$rxy*&%g+T3=FJV+Zi}E0vSvUTtJcyEXd5j4P^5`6aZ;nAdiuO53GtG0H?nW%K!iX diff --git a/src/DAL/MySQLDAOFactory.class b/src/DAL/MySQLDAOFactory.class index 4ff7a55b4a44578cfd7ecf21a7955e799d9230bf..05538a2b12c1eaa3475eac8262a6f72ed7a85ded 100644 GIT binary patch delta 267 zcmYMvy-ve06b0bpRM6A}T1vBDWugmZV1l6n!IlN_BQY=-$4WyJJ94b58_y82^BM?{ zVCSI_rVL%K?$P~*dtQRK&fxp!{S&|$;w}P)y>>Kx>Y~Tce-sNbDTU4_7uFgZVvAvZ zqpfO8xlkENQ`JQ&TwyfT);yG|Iwsz`o+-+dEQR%^7IH3fMM-1j!TD*LP-av^+Bm9& zlQVK&t7WaETkA0;f0T2C*p9G)9fo*6UH^0CY@zd$@ojs57{qD&d^tTr2h8{29|-S; d{1wrcPXYRVZmup21HVWA3cDEk3zvi;I%=CkoheaWOD6aPly)GO$hjZonq#0}`LC w$rxy*&%g+T3=FJV+Zi}E0vSvUTtJcyEXd5j4P^5`6aZ;nAdiuO53GtG0H?nW%K!iX diff --git a/src/DTO/.gitignore b/src/DTO/.gitignore new file mode 100644 index 0000000..42a4686 --- /dev/null +++ b/src/DTO/.gitignore @@ -0,0 +1 @@ +/FileDTO.class diff --git a/src/DTO/FileDTO.class b/src/DTO/FileDTO.class index ef8485fa0e9e60c5e9f223a77706fa23633ddf1f..bbccbaff7e4b51d970f137b9af45da76b9687dc5 100644 GIT binary patch literal 2352 zcmbW2ZBrXn6vzKJg`153won9V)+-gD0Vorin*=igU<16ar76k-BX5BD0C z4a-(ErVtmHc_B|_#g@)drE%~=HGP5fA?@$Twi3v054LyxuH_t61yW7d@s&fG3HL`w zbpha0-nSgfUlWka7ybYDmC+-jjxFyC z#OrQLWiWvm0|u@NOe~l8Cn0dnKmtjYW(}mYG-n{KrGkM;WO(;&15?NdOmAC`+Ud0q zRCiAv*gSra$kjeQZO*;);k~FP{qQUxu0_D%n9?hSC!L9~+bK&u$Y7D>*zZ;a3?S`gl-_@;> z!H4)bg^xy>Om7*ugS*s8r_%1J#-YH?;aGJeRwGiBrB?pbz-PE8FxQqRib8Kn|9i_n zCW(5@@hSJtu(PmjFQ)tdtwcakMRwg@x2d?kl%4Q;t@72O*w9!+wwA~ z;mZ`L{TBz9%W_WL6IIc$I;aiV^xf`Dj`k~oUx#A~wY9@7>9lO+EpEH+Nv~6VV^|}G zdoMdGLjBp0hlomqF6z>@cP(F4r<1s!MqOYtjQgjn7zc0 z6!~L`850mBab!$bp^+^U<{!xZMnVjXkqj1#!EqcCr$8Sk@IF4E6*gWYZ9Xg+gf<8w z6Ra+fO)2n@*IMVm$q<;@I}#)}4zd^taw8ffHx5#!xz29x2WII7p2^)-D0zZefs>NRZ+<$a*Bm z?P!ppM%O*ENg!L7fN--i$m)4%o|88BVu_oTz8rmd`sV*ag@z&xukZ;lU@THrfgNi9 x2L0E5N>}q6x=!C>4o`--OJQeD;B(TB;R{r0Ow(Bp=v&7_nla1Q*u*0gUIRZc$*ceX literal 1642 zcmb7@OK;Oa5XWajnmDc@ZAe5N_Ar4&%K6uwV^Pit*XU0E%e)$Ffui$YR3IwXLaJp{>{qBM1Gu+EiB(QQy z&uQ1E;i%gmo-#)gFy5p8kOquEtv7ccN#TW~mjucV4FubJ+#%Q zA@K*lJMaP)OBzHNRGCEXOj6qQLQlRXK-(Aj|8H6RgzmGQ69UD3?y@qh;Qi-!c`F1L z2Gj_g9fyL&+&^co?eHM-d@4O2+L7Qxp9L>$voaVn+hvYV1!^MdoY4`pTUfxB?Q#~| zA(wVQr8BlAD%qz9tC&?{*>{xMG@%N03oK|5XlSmk(yjKqkR48fArk|N8K@p`hx#W} zc0^b{+-JYrIHc-p~wyK}Lk2HYXg{O8S)6=zu{lJ{r5H_`R`V4$Zz zodpB!>8qvm^T}A7rLx#K0+vF}b?a$q7G3>cNp z`;O{AG=abs{418AfKLhE3Q$gWBi$=tCidlIw=lwjtGHf6>obg2QRY{uzN@W%hU?!G z?HaBn)Brx~xT+{r!423*Y&YRnhLHFY!fg#<#R%iSG+VcGj$K zjs^Nnrh?v3*lY_#0z1tZKD9Qq)-_b^Rw&7mMGs2&V02u33b zGm@x}nE|G0V+TqH#<_)LYbc&znvy$68ZjWhGqf`jNF-z6?aZ+wmaC?kZ~!87CSs7J zZl%l$V|H7##|$&g%$c>u>kmfkTp)rA+cVyg7Snl zP0jUNTen=)v8}ynGY}ukEe174BOn$@bOpjm(@oQvoT2_eKX7v`4@E+Wl}veMBLf1CnMGSInwX~FX>9myT z^lX#c7K-#l_oeZR%j8;v>S#G^6O(OSH-@8evtz)F1rniX1TdC?n2cR%&?;KZG;yby z01>g*je!W(n_5bGxPisUSO;8uuRHWAuJZzoq zVfI*?h(YUV1C$Q-8Un%HJ7dvg1gj!U4t%S~{K0wwlBCA1eh+AZMjHE190 zhbMzDQ$-f3#%TXQGy;C=vKSm`bkilkr#%`=^a-8IgwFpkm5)my%cVMY>@tI(2{XEa zsW{thM#n%8U2a8=s|=b%g*sgW0J0~n7mPe~HC-#}doR-rYxT6!N1|zYmqeiV8B{=q zPB$R*=g{d4#-ib{Se%Ehr<;V@`!Qx*S%mWsWc$#XP`??8L(d+%nLa3Umk5>H4Ehj# z7`6i!*ob&$#$slV6*sa8XJ!KuH+>Y|+6c_en44}#NZ4kIfJ~R^^s&(nqN2H*KF;J3 zJN8Qkto6{H6wv9D2o^aKW|E+X?zTYvv_U$#bsDstIStx+87gVeL-$%EKVwindEE3_ z*ia)n5~i{t;p-uT9;VO1&tX26hcPY7Rl<7Z$aPsJU?;@UJ|*%W2C2rbn^j z)`6b%if&4wVT~C!Z5G`07#dn&sIi1Si;NjJVe;ip9_a#sf}k>Cdu>lBGLTHOJUM73w2|=`zC$gdhD)&f zp+P^QA0vFibDE>UB!mdTC7=*T*?E#8x6^H2lp8;jF#B_+rg79X*4(n9*tk&=1~MQi z2dgCD0r(hi%tIp_Dm9JDuW0eoH0pM0TX3|V#Jj?nmm1QK6;uv&- zyW0W-c1c-~@KzYIQzsbYkgH_=shDcnVK7cp6U^!|sdj zYZ0$lgX%ZBlc~+-*{ZYBi8o6Q+bptL>?qnYE;6ThhQX(cQXJTQ^uz49#Ne5X%3Ke{ zoB9V52b4j=%4YH`m=n)tnl%n^<*jSBbf~Qso^>8B<#{^Kl_)&YZ19<~QUTO2#v*wL zS%%9Eu8`td>Sf6(GP%m&>a?jy0gE^x%{2xu;Dw04Qt>KN@2Q6eX6oJeo^Z_;q*?4o z`Ug-Do#L|$Ud(5MxQf^vsMT_;ChbLI@sj1vF?eZuIV-(jIq9f1xK7w}gO84VD89Vp z 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 literal 3346 zcmds2-BKJy6h6HY_6KkS0g`Bp!>S31%4&>12?PVnZUPQJaThGjh1JY7Y)jAd+S3cf z2k=>ZgH&miURvcFw$3vJk~9>KRx1@yULDA8zD z;?r$&$9NaTij^Ys$Wpbou<19xUH@vW`Xz?D*IEQsWQ=67-lC$-a&U>jIUdmn<2E?Q zW3J~3yfS@bi@-nyJ<7rx1d1l`sn=Ddq{_jYB=dALRxFWXpM_o^qZSuba~XRrCAS5O zlDl3Z-)J%~WPzXxK`k2W;Ujyc4Zq}tk|ka&wHHwxG(C+#cGzNpJ_*D`nn7^N!=si| z+FSI!fX3$JHuH`R=t3+t)}4?vu^cK-OOJZ`NsAToXA5$h^8dNd`56D5duMW80j|K* zFkFTbfr;tf5;3V?^m)wI+R-*s4T{-pYDorEY*EF{{zy2Wn>-;f>AN}}7UZz0Cr$oomE`CJP_qJ6T2Yy(rfo`6pDL61bMCSkP8nKPj)tdOK(?h+T=>X4Jvv;0}S>>CT#t z^&<6;a|FjpnEH?t@_1PYP^@ii(YJOhe7?caz>YQN(-72gdWa)%F%>Pg#hzisoGL1| zgWauZw&}nc3IwCdPCV4-6Q=8SCSd+KviKX@!6V8si6*BX_hyXI7wWRDf+HKoy5{wa z32PQsa4MuB!E9dTNrFZg>f^|Vb1;aj46bwbpNE3|55X{^M(p}k)ED7= zXFrPjF}Q%b*I*nbP(EpK7hx3Fmr+XKb(Gx3TL}IOzrdBR$F4pF?>CEk3%`R_lYzH! zZEivoyaU&){(2vVX$M2e$#4_iJz>LuVYfE87!I5a??LGVL*`V5ADs;E_wi!J;l)o* zh7XV-10UkuIgI2jjOQngxPIo~``yWRx5GDpzTI|kx#IK8$u-+2J}&S6bTZ6!tQkZv zU);C9oNV`Aj*So}+kA(uU!)vSClgMt&pTZI@)gOnlkfgZ^WAsyEg+w(UR@qOaxyIT zVQ^# Date: Thu, 21 Nov 2024 21:22:50 +0500 Subject: [PATCH 2/4] Fetching File in DAO Fetching File and File Content For Analysis --- src/DAL/.classpath | 5 +++++ src/DAL/.project | 17 +++++++++++++++++ src/DAL/DAOFactory.class | Bin 476 -> 152 bytes src/DAL/FileDAO.class | Bin 7772 -> 2398 bytes src/DAL/FileDAO.java | 26 ++++++++++++++++++++++++++ 5 files changed, 48 insertions(+) create mode 100644 src/DAL/.classpath create mode 100644 src/DAL/.project diff --git a/src/DAL/.classpath b/src/DAL/.classpath new file mode 100644 index 0000000..ac37fb2 --- /dev/null +++ b/src/DAL/.classpath @@ -0,0 +1,5 @@ + + + + + diff --git a/src/DAL/.project b/src/DAL/.project new file mode 100644 index 0000000..5f79545 --- /dev/null +++ b/src/DAL/.project @@ -0,0 +1,17 @@ + + + DAL + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/DAL/DAOFactory.class b/src/DAL/DAOFactory.class index c0159643d84b3fb08b5cc1418ee75893f8ae431f..0bd20fe2e277a3bc414c9890fdec4bdae1259af5 100644 GIT binary patch delta 74 zcmcb^JcCi>)W2Q(7#J9A893P)m>3y^ii?uCoUGqNx;urja#H8C=<14$+Z4gkW@4x<17 literal 476 zcmYk3!A=4(6h&VVnPEgg6xR(aZ~=QECMdF+$O0sB+37SxvC~dEh3HrKIVPIu-j6c2 zBL)|3@@~&-@4Nl_e)|A`YdH6ygrGhdhl9y@HYL<3{p>**L32&EWFUx42D50*s6pV5 zsNj;DD+CAK-V#CiM#ap7DuTwIzSUZ3AC3^b+)K@JCAKWaRHYdg#Be2Xrd1?ZnqT6e zx>zwBGb)I-P)6t@Nf_?rn)a=y4vrPeu~Y`9#LyKsmS#_xb@QKgx&rv^AH5!!*LDj&_GZb?Ivk=!@c*p(Of1&H(Mj*lHG06i0K8fb`i8fMTuAv&0W0{ zgM^tW7tE$-d%C^QMY$7(2!grVXv&;mkM|Mx-J2BzHc9&r03~bf5GuCzY<00ygLm*B cTEQ#SJ`1L4cgKKTCxzmEss*Qoa#kqqAM^Zoj{pDw diff --git a/src/DAL/FileDAO.class b/src/DAL/FileDAO.class index 39f214f770896fbe6d7d197f8392fd1e6bbb7c45..98cdcac6d4d82e1bbea063af2ebace8e75d50e8b 100644 GIT binary patch literal 2398 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 diff --git a/src/DAL/FileDAO.java b/src/DAL/FileDAO.java index 4740c71..81714b4 100644 --- a/src/DAL/FileDAO.java +++ b/src/DAL/FileDAO.java @@ -157,6 +157,32 @@ public boolean isFileExists(String hashValue) throws SQLException { return rs.getInt(1) > 0; } } +//fetching file content +public List getAllFiles() throws Exception { + List files = new ArrayList<>(); + try (Connection conn = getConnection(); + PreparedStatement stmt = conn.prepareStatement("SELECT content FROM files"); + ResultSet rs = stmt.executeQuery()) { + while (rs.next()) { + files.add(rs.getString("content")); + } + } + return files; +} + +public String getFileContent(String fileName) throws Exception { + try (Connection conn = getConnection(); + PreparedStatement stmt = conn.prepareStatement("SELECT content FROM files WHERE name = ?")) { + stmt.setString(1, fileName); + try (ResultSet rs = stmt.executeQuery()) { + if (rs.next()) { + return rs.getString("content"); + } + } + } + return null; +} + } From ea90f2f444b9f36e982772ff78db64830d4161cf Mon Sep 17 00:00:00 2001 From: Noor Fatima Date: Thu, 21 Nov 2024 21:34:37 +0500 Subject: [PATCH 3/4] Update PL of Analysis Manager Opening Analysis Manager for Analysis. --- src/PL/.classpath | 5 ++ src/PL/.project | 17 +++++++ src/PL/AnalysisManager.class | Bin 0 -> 1658 bytes src/PL/AnalysisManager.java | 94 +++++++++++++++++++++++++++++++++++ src/PL/TextEditorGUI.java | 10 ++++ 5 files changed, 126 insertions(+) create mode 100644 src/PL/.classpath create mode 100644 src/PL/.project create mode 100644 src/PL/AnalysisManager.class create mode 100644 src/PL/AnalysisManager.java diff --git a/src/PL/.classpath b/src/PL/.classpath new file mode 100644 index 0000000..ac37fb2 --- /dev/null +++ b/src/PL/.classpath @@ -0,0 +1,5 @@ + + + + + diff --git a/src/PL/.project b/src/PL/.project new file mode 100644 index 0000000..0358a8c --- /dev/null +++ b/src/PL/.project @@ -0,0 +1,17 @@ + + + PL + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/PL/AnalysisManager.class b/src/PL/AnalysisManager.class new file mode 100644 index 0000000000000000000000000000000000000000..e5d8446eae313ca3a1beb2672c94ea89c3ec2d98 GIT binary patch literal 1658 zcmcJPT~8B16o$_f=(bCxQb6!~s9(hkdZRa@Cap-+EJ#8nA;yc--3cAt-Dzf~wfM(O zG|_v1l=1AgCQuioiQdfY?mYAEIq#e^KYo7s1^`cB&4C<)OGf+kU9aAVF+4KTY-5av zLOU?cpzs0B}1{j=TOGjz;fJUR>Z1RFvgOrXugU`@43CxN5n8{) zErDXt6}~+Vl3VKp4|QbJRoe2V$9;^Goo&H?2XKPeY-A&U_?98Wt>Vb-QCGOdk$-=o zCRLr3KVKC8lKMXpPN?d_94wSz78V&S)zXq37T})M)F2y4ftEcPi=AH77P^I0bJRng z@-f^;EtB`r$7$PF%kX_C*pEgT=Am zt|vEu19uqAkF7L42ktR&M%j>=+tL_1q82rgfmNXEgl@no$iWQc=_v;e6w analyzeIndividualFiles()); + + JButton analyzeAllButton = new JButton("Analyze Across All Files"); + analyzeAllButton.addActionListener(e -> analyzeAcrossAllFiles()); + + JButton backButton = new JButton("Back"); + backButton.addActionListener(e -> navigateBack()); + + JPanel buttonPanel = new JPanel(); + buttonPanel.add(analyzeIndividualButton); + buttonPanel.add(analyzeAllButton); + buttonPanel.add(backButton); + + add(new JScrollPane(resultArea), BorderLayout.CENTER); + add(buttonPanel, BorderLayout.SOUTH); + + setVisible(true); + } + + private void navigateBack() { + this.setVisible(false); + new TextEditorGUI(); + } + + private void analyzeIndividualFiles() { + try { + List allFiles = databaseManager.getAllFiles(); + Map> results = analysisManager.analyzeIndividualFiles(allFiles); + + resultArea.setText("Individual File Analysis Results:\n\n"); + for (Map.Entry> entry : results.entrySet()) { + resultArea.append(entry.getKey() + ":\n"); + for (Map.Entry metric : entry.getValue().entrySet()) { + resultArea.append(metric.getKey() + ": " + metric.getValue() + "\n"); + } + resultArea.append("\n"); + } + } catch (Exception ex) { + ex.printStackTrace(); + JOptionPane.showMessageDialog(this, "Error analyzing individual files: " + ex.getMessage()); + } + } + + private void analyzeAcrossAllFiles() { + try { + List allFiles = databaseManager.getAllFiles(); + Map> results = analysisManager.analyzeAcrossAllFiles(allFiles); + + resultArea.setText("Overall Analysis Results Across All Files:\n\n"); + for (Map.Entry> entry : results.entrySet()) { + resultArea.append(entry.getKey() + ":\n"); + for (Map.Entry metric : entry.getValue().entrySet()) { + resultArea.append(metric.getKey() + ": " + metric.getValue() + "\n"); + } + resultArea.append("\n"); + } + } catch (Exception ex) { + ex.printStackTrace(); + JOptionPane.showMessageDialog(this, "Error analyzing across all files: " + ex.getMessage()); + } + } + + public static void main(String[] args) { + new AnalysisManager(); + } +} + + \ No newline at end of file diff --git a/src/PL/TextEditorGUI.java b/src/PL/TextEditorGUI.java index 103ddc7..4ec9fd7 100644 --- a/src/PL/TextEditorGUI.java +++ b/src/PL/TextEditorGUI.java @@ -95,6 +95,7 @@ private void initializeUI() { addButton(buttonPanel, "Delete File", new Color(75, 0, 130)); // Dark purple color addButton(buttonPanel, "Import File", new Color(75, 0, 130)); // Dark purple color addButton(buttonPanel, "Import Bulk Files", new Color(75, 0, 130)); // Dark purple color + addButton(buttonPanel, "Analysis", new Color(0, 128, 0)); // Green for analysis button add(buttonPanel, BorderLayout.SOUTH); @@ -154,6 +155,9 @@ private void handleButtonClick(String action) { case "Import Bulk Files": importBulkFiles(); break; + case "Analysis": + openAnalysisManager(); + break; } } catch (Exception ex) { setStatus("Error: " + ex.getMessage(), true); @@ -362,4 +366,10 @@ public static void main(String[] args) { ui.setVisible(true); }); } + // Methid to open analysis Manager + private void openAnalysisManager() { + SwingUtilities.invokeLater(() -> { + AnalysisManager analysisManager = new AnalysisManager(this); + analysisManager.setVisible(true); + }); } From 7502f5fc5b56420ce3e7f2b6e09795c95720d9f0 Mon Sep 17 00:00:00 2001 From: ZainabEman Date: Thu, 21 Nov 2024 22:58:48 +0500 Subject: [PATCH 4/4] updating directories --- BL/FileBL.class | Bin 0 -> 2398 bytes DAL/IFileDAO.class | Bin 0 -> 520 bytes DTO/FileDTO.class | Bin 0 -> 2352 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 BL/FileBL.class create mode 100644 DAL/IFileDAO.class create mode 100644 DTO/FileDTO.class diff --git a/BL/FileBL.class b/BL/FileBL.class new file mode 100644 index 0000000000000000000000000000000000000000..e08cbeb306370db3f3c37bbf1923b4eda14d48fe GIT binary patch literal 2398 zcmcImYjYD-7=BI~NV?gU(sHNj0vgg58ZV$gxtO-8R+fg60#ZfXCa3A*UgBoM*uUU+ zKj?4pgU%>enUQaN@JBg5=VVO+siWhJ)0xe=yqD*Fp7*@d-~agaHvm^4Ge`*x&)dZ% z*OT*h25Et@ht4CX=s7{7SlM_eYq3CPlh=!-iomG7Sh9=D%AET-fsw`XQt7t6_Mmci zrF=_Z-0rzok1omEb12?`ZFjSbjBamJQ>(amw z#!Q$PF~Eo>CUAhbYLRqem3GOg#bLC~tHPAV(>t5X;Si2waF|dP(%y}Uqc|pDG-RBh zXUN3AThB1_O`6z)y#o7eH;^lBe?vxV&W0ydZDGyv?l_UF_Q_#7-f~+4IlIdu3pVOb z*hM+^GR6#EXZRjZ1+zuky3cW|NZq-7+>3UA=hJn?LLT2<^mn>s=ZA)6d zjJLwN#ab5U*S4FoFlD(ds~yzkCPCM&%`mcJ+Qq!HIw~#)&9TC7jVwM^P(qdKaTz+}7z<{;DRMs>W6Zvkb3U zX?^JxtE+bRE`v7(@|`PLYe#OpU0eyP?b=q!YlPfx`CVHBZ{u7B@4V2+olZ1y9`CZp z*p|M)0gB(#An8@*eZj;R|t+L;Y*=Ov{^$acxoa{L)d!B4KUMXs{eHp~v{8_M> zPb(g*!11N!1WL*vrj6ydTd}pli!eAVRcHfqDCAJWLI(2!X8+?dF^xrmi~owt!Ahpc zZg!I}R)~VdBpCP@tFcr2;)c^q8aT^mRqyC_VwYTeVQUpVANV_$#dU$>z3K)kQpMab z@gbHeZo64$Pbq74eAC2=s>rBIPj-&~rk~c8`I?DU%+TERn_;9Mt-#>~Vc>>ERb26= z6K~Babv_oD(CYAJxzd$GMOrs;8|+a{hjO6!9l~A=LjgRu6_-3uLFS`Y^F_yO$F5hj zdB?XsTy-0P6SpI>njbK@JgCG~4y6({Ox(w3ETo;#^Mg zj}wTiW5^)O(_wvT=ryMzPeyrC)t11-^b_p+1^eyknH?My_!-B4)DExkJB~EJhxt81 z_oLh&!>c?wL}$9PXX=WTrf3b#AK@J*k6vP}Vf5)e=`Jd_ey+Qj==7vn>;h zY3|NygdQWP3i3oak|6vG(?|W7c3`LQ!%Jw+F~)gvd!dijd>2hVL6cw@RTx(O51uN6 zJY6ME*T~cSf8c2qw+46$5}peG#FNskIy9i$buwj>sY)MHg)UQtU6|sdO;BW+`);?V zuJKeUmebv`gL^5RtiLhu_9e-6ljQITKBWXgJw=98&Dv>%2VAA_xo(Ja+JbGb!ta3p Xq$tt*qu&n%0i12%a?qOf&iNm@-#u4=xj_b+f2dCMHwEzGB literal 0 HcmV?d00001 diff --git a/DTO/FileDTO.class b/DTO/FileDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..0d5b39288ba3484b1b6eb0fa8a5647c33e3edabe GIT binary patch literal 2352 zcmbW2ZBrXn6vzKJ6~q^v>C7d$z?RK!%x-Wx zj^Dx;ehi&4qth3D06&z|bM`J|6PAwSFq?bsz2}_!I}i8r&%dw!22jW26k-BX5BHkY z4bxIIrVtmHc_B|_)sps6wR!MDwLF3JA?@$TjuOaj54U%{o@pP|1X3->_LNPU3Fk*! z^#mqcJtaNWen4wEZQ}l5Rrkz}ay{AUlF?+p+dflC-ZyR2TN9AW7ybYDmC+-jjxFyC z#2ZdqWiWvm0|u@NOe~l8Cn0dnKmtjYW(}mYG-n{KrGkM;WO(;&15?NdOmCaE+Ua)= zRBulnSblb#mbCU|&*XWq8264%SK!KaDAN@G)RFQy?>eu!%|>L0Bg&Ag z##sq6WO6=9(@s;DBu(pqXt4gUK>4$?NAo9Ou&bfoTyXrT8UwJy?}p`MyU;Z4Il5Ic z_z)kb@X<(<=`90yaF;siR9b!2JQTPYj#W2eEh0r(YUNK2e1>}ha~*l2DD;-}zBj#N zlBm~gk8*E^ods=sG2Q=fB?5{nvg`DFEyeYv>;%_qm9GxPzV0}l>-A*!iSmw}wws~L z_+<*z{)@xQW!k6CiK=Q?9n^+wc~0*oNBfn)ui=;iZS8PN+HFg@i`$NK((l&Z7}kj4 z-pj6vP=6Nk5K)Q1MMGNFuIZ`TbQ1T|Xb5ZuasPA}w0V6=EUlDUx>NPUe=madvremv zmD2g+P!~T_1|Qk!j{1GH>(OHb)xVd-R%kLrvzgB5Req( zXTTrn5%5QP0{oF402&RlFmQ!_-=f(sq|aKV%Ac67+!`QTSs5T#xjjI>Qiu;QUnwL8 zDE{tyc!z$klYd|aaa^UxB}-ne(O(V)%whp~yi2=l+9&BQ(2TtMY{HkAF6K+j$LuA3 zq{tsj%$R^6i6djeDvfNJsQiKKZzROP7)gJz=pV-+aSHTt0`KDkT4Ccg(&odGerUrW zGXClU*_3<_d98I0oD6`ey(2+#;~