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