From 7f5d6d10c35a74e7f934927b9637009ee406278f Mon Sep 17 00:00:00 2001 From: "tylerm@stud.ntnu.no" <tylerm@stud.ntnu.no> Date: Fri, 28 Sep 2018 13:28:14 +0200 Subject: [PATCH] Transformation files added --- .jetproperties | 4 + bin/tdt4250/coursework/CourseworkGen.class | Bin 0 -> 2737 bytes .../coursework/CourseworkHTMLGenerator.class | Bin 0 -> 6590 bytes model/CourseworkGenerator.java | 6 + src/tdt4250/coursework/CourseworkGen.java | 36 ++++ .../coursework/CourseworkHTMLGenerator.java | 168 ++++++++++++++++++ 6 files changed, 214 insertions(+) create mode 100644 .jetproperties create mode 100644 bin/tdt4250/coursework/CourseworkGen.class create mode 100644 bin/tdt4250/coursework/CourseworkHTMLGenerator.class create mode 100644 model/CourseworkGenerator.java create mode 100644 src/tdt4250/coursework/CourseworkGen.java create mode 100644 src/tdt4250/coursework/CourseworkHTMLGenerator.java diff --git a/.jetproperties b/.jetproperties new file mode 100644 index 0000000..cf694b2 --- /dev/null +++ b/.jetproperties @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jet-settings> + <template-container>templates</template-container> <source-container></source-container> +</jet-settings> diff --git a/bin/tdt4250/coursework/CourseworkGen.class b/bin/tdt4250/coursework/CourseworkGen.class new file mode 100644 index 0000000000000000000000000000000000000000..348baa3e1ac929ce14dd964b5ba6b65aae7552bd GIT binary patch literal 2737 zcmX^0Z`VEs1_l#`c6J6PMh1nFloAsoQv?0v{L-T0)bjkIY<*`q(>*nhoq>gsK_Dx! zEKxrvF)v-;KPf9UxrC8{%_cK1v&4>(fmuT{jFExGIX@+pi-DPelZSzofsK)Y-zPIK z)vq)+DYYmhF)1gNkwM5OKRGccEU_pP#D@y9lw@QUGcqXo5ORk#BLhorVrCvAgP2CN z55hgcB}JKe>DC}OaJg0_rxuiC=I0f&GYBy<2!mB+=IeX<!)3S_7#T!(7(^Mw7#Y~p zQ%eF%GpiUGj5V;Bh|Ni%d6{LYMa7vVl_2*d7Nr+6G6-XF4kH6sDO@QdgFFGV*coIP z8I1Fb()Cl5b21BxQ}t7G)AUo5^NUjTi&Bg8ON)|I^)qt|a`c0syx`Ol&)k9>E(U1^ zPHqNy21RxT1x5xf0!AR|=3!7`P-bKhN>42bNKDR7Oiv9;P0uVYDXL^-(ALoO!ETZ( zRILh3u{8&SDkFnpMoCG5mA-y?dAVL{MPhD2PO2Wr07RnVWKd_&WM|M|WKh8y(@^ty z7_=C)85uZJJ^g}19Q~YK85z{Dg&`uTLN!`*Gw3qtvoq*1GN^-GfEk_`Uf^LcU@&B4 zU@j;vVPvpCP6?2-ZjF>Spdy->LZC=6=3y{lFlA(rN>43;1+`mZa!GzsB`mxc8EkL{ zE<C1TdR3sB5uwe^V9sF4&S1gFV1eCtgw5b#uwt-gWROTtEpe?VNzE(H%+CwShuY+u zSis02r~&m~X-Q^|zHefIH3x$vJA)k~gD#f111C#FJU|VCBu-mU;&cSXhZ7?MFE~5G z%;aKlVQ^z-aAjnWNB2o`er|4lo<3M*XpkolgFAx<BLio0QEFmIYG{xrBZDb&EWt_u zj3kR@jx{KXym%PA8GINSxRIiWk-=AkpynuCSpp-(t+^Te7y{TC{Bb5h3@tnifeb+q zM>*%`m89mC6f-iYVo4~-UUK!xEH1I;W(Z*jV`m6uWKhHxj$p++4B-qBj0_x^C8<S; zCHY05vJ^S0J)z>(+ze3+G3*S{j0{4ENQ24pFvK#%F*2~^rB;+MGKjzu3sUW1&CZa( z$RLaE9!PoS3duw43`vX(vRKj+qKM^WNMT50XGle<e}XHEOHy-r7}6Os7#W!JL3vgb zk{dJg^#h7B^GbqCic%AEt+^Po7;@MdvXSZmBxxRoT!uVG2KEAwj+{J322tcB1#zOa zW*8_S3V0X_8HyMg*fSD~{lI=^*3gV%WZ*0<%7mmnP~8R&CvX@*#H<+^*osn%gHuZw z8FVmG7bGY!(m`-)i8Uhw2TYuif%rtn$iSWoaW<&B!5j3}j10WNC5g$|zKI3kYM7m& z7B!5)bt)qRS1`Edamxf(--tZ!o|>lz@-HI;k7r(9YLRnJVsUY5F*`#OBZC|ctD)sH zBLfGlC}d}7Wn|FDt{fHu@cIr`6f!cfLrWM2MFvI&W(E*oW?%$0Iv5xk*cliY^cff# z7#SECShcn@aBO5?U|?e4Vqjok0}Jvqa5FG4@POH@3_J|H3=9mM415gy3``6H3=9k` z42%qdU}GE@m>8HC7#KLTn2mNY2>T#R;sT2cF|acTgH00y^EnvA86+4O7}yyY86+8` z7#JBiLCp+wa~W9~SQuCt7#M1HGe}2nXOQ*L-pL@x$RMP$i9u~AgAOx8xb{v4BSwau z3}%cBLN>b@Y$LZb*zaU;0Lf_WU~p#H$>7P%;H$Hf!55?|n32JXWjTY2B+E{QNJfSO z4Do)t2N@D)G6-#ANY*{TkhqN@6GUwQDadDJnDze#;|2x>24--mXn{#F29WC|86+5t z86+9(8KfAZ7^E2z8Dto;8Dtp>7^E1g7!<&M)nZ@)xt*byp#&5*3?&Su3}p<A4E7AR z4CM?J3``7B3}OtG3{?!w4Al$_4B`w-{~7!lSlJnB*cs&68T=U78KM{%6d0Ho>cCM` j&(OfYz#zrI%%IEA$k5Ej$<V^!$I!;c$zaaV0^$PzK;!uq literal 0 HcmV?d00001 diff --git a/bin/tdt4250/coursework/CourseworkHTMLGenerator.class b/bin/tdt4250/coursework/CourseworkHTMLGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..5287590f03bab836bcfa3df3e987c6d868229d78 GIT binary patch literal 6590 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 VT8LKJQn0H*bvGlU7)Xv$902+rsVo2h literal 0 HcmV?d00001 diff --git a/model/CourseworkGenerator.java b/model/CourseworkGenerator.java new file mode 100644 index 0000000..5a13982 --- /dev/null +++ b/model/CourseworkGenerator.java @@ -0,0 +1,6 @@ +public class CourseworkGenerator{ + + public static void main(String args[]) { + System.out.println("Test"); +} +} \ No newline at end of file diff --git a/src/tdt4250/coursework/CourseworkGen.java b/src/tdt4250/coursework/CourseworkGen.java new file mode 100644 index 0000000..e8a5a42 --- /dev/null +++ b/src/tdt4250/coursework/CourseworkGen.java @@ -0,0 +1,36 @@ +package tdt4250.coursework; + +import java.io.IOException; +import java.io.PrintStream; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import tdt4250.coursework.University; +import tdt4250.coursework.impl.CourseworkFactoryImpl; + +public class CourseworkGen { + + public static void main(String[] args) throws IOException { + University university = getQuiz(args[0]); + } + + public static University getQuiz(String uriString) throws IOException { + ResourceSet resSet = new ResourceSetImpl(); + resSet.getPackageRegistry().put(CourseworkPackage.eNS_URI, CourseworkPackage.eINSTANCE); + resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("university", new CourseworkFactoryImpl()); + Resource resource = resSet.getResource(URI.createURI(uriString), true); + for (EObject eObject : resource.getContents()) { + if (eObject instanceof University) { + System.out.println((University) eObject); + return (University) eObject; + } + } + return null; + } + + +} diff --git a/src/tdt4250/coursework/CourseworkHTMLGenerator.java b/src/tdt4250/coursework/CourseworkHTMLGenerator.java new file mode 100644 index 0000000..4735bce --- /dev/null +++ b/src/tdt4250/coursework/CourseworkHTMLGenerator.java @@ -0,0 +1,168 @@ +package tdt4250.coursework; + +import tdt4250.coursework.*; +import java.util.ArrayList; + +public abstract class CourseworkHTMLGenerator { + + ArrayList<String> generateHTML(University university){ + ArrayList<String> htmlPages = new ArrayList<String>(); + for(Course course : university.getCourse()) { + htmlPages.add(generateCourseHTML(course)); + } + return htmlPages; + } + + String generateCourseHTML(Course course) { + String coursehtml = "<html>" + + "<title>" + + course.getCode() + + " " + + course.getName() + + "</title>" + + "<body>" + + courseWorkTableGen(course) + + contentGen(course) + + assignmentGen(course) + + pkGen(course) + + reductionTableGen(course) + + timetableGen(course); + + coursehtml += "</body></html>"; + + return coursehtml; + } + + String courseWorkTableGen(Course course) { + EvaluationForm evalform = course.getSemesterSpecificCourseInstance().get(0).getEvaluationform(); + String evalTable = "<div><h1>Examination Arrangements</h1><table>" + +"<tr>" + + "<th>" + + "Evaluation form" + + "</th>" + + "<th>" + + "Weighting" + + " </th>" + + "</tr>"; + for (Evaluation eval : evalform.getEvaluation()) { + evalTable += "<tr>" + + "<th>" + + eval.getEvaluationKind().getName() + + "</th>" + + "</tr>"; + } + evalTable += "</table></div>"; + return evalTable; + } + + String contentGen(Course course) { + String contentDiv = "<div><h1>Course Content</h1>" + + course.getContent() + + "</div>"; + return contentDiv; + } + + String assignmentGen(Course course) { + String assignmentDiv = "<div><h1>Compulsory Assignments</h1>"; + for(Evaluation eval : course.getSemesterSpecificCourseInstance().get(0).getEvaluationform().getEvaluation()) { + if(!eval.getEvaluationKind().equals(EvaluationKinds.getByName("Exam"))) { + assignmentDiv += "<br>" + + eval.getEvaluationKind().getName() + + "</br>"; + } + } + assignmentDiv += "</div>"; + return assignmentDiv; + } + + String pkGen(Course course) { + String pkDiv = "<div><h1>Recommended Previous Knowledge</h1>"; + for(Course recCourse : course.getRecommendedCourse()) { + pkDiv += "Course" + + recCourse.getCode() + + " " + + recCourse.getName() + + ", or equivalent. <br>"; + } + pkDiv += "</div>"; + + pkDiv = "<div><h1>Required Previous Knowledge</h1>"; + for(Course reqCourse : course.getRequiredCourse()) { + pkDiv += "Course" + + reqCourse.getCode() + + " " + + reqCourse.getName() + + ", or equivalent. <br>"; + } + pkDiv += "</div>"; + return pkDiv; + } + + String reductionTableGen(Course course) { + String reducDiv = "<div><h1>Credit Reductions</h1><table><br>" + +"<tr>" + + "<th>" + + "Course Code" + + "</th>" + + "<th>" + + "Reduction" + + " </th>" + + "</tr>"; + for (CreditReduction crRed : course.getCreditreduction()) { + reducDiv += "<tr>" + + "<th>" + + crRed.getCourse().getCode() + + "</th>" + + "<th>" + + crRed.getReductionValue() + + " </th>" + + "</tr>"; + + } + reducDiv += "</div>"; + return reducDiv; + } + + String timetableGen(Course course) { + String timetableDiv = "<div><h1>Timetable</h1><table><br>" + + "<tr>" + + "<th>" + + "Date" + + "</th>" + + "<th>" + + "Type" + + "</th>" + + "<th>" + + "Study Programs" + + "</th>" + + "<th>" + + "Room" + + "</th>" + + "</tr>"; + for(TimetableSlot timeslot : course.getSemesterSpecificCourseInstance().get(0).getTimetable().getLecture()) { + timetableDiv += "<tr>" + + "<th>" + + timeslot.getDate() + + "</th>" + + "<th>" + + timeslot.getTimetableSlotKind().getName() + + "</th>" + + "<th>"; + for(StudyProgram sp : timeslot.getStudyprogram()) { + timetableDiv += sp.getName() + "<br>"; + }; + timetableDiv += "</th>" + + "<th>" + + timeslot.getRoom().getName() + + "</th>" + + "</tr>"; + } + timetableDiv += "</table></div>"; + return timetableDiv; + } + + public static void main(String[] args) { + Course uni = new Course(); + } + +} -- GitLab