Commit 203493b9 authored by Ådne Karstad's avatar Ådne Karstad
Browse files

[minor] Generate html using acceleo M2T

parent 2912241b
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" output="bin" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>tdt4250.spp.html.acceleo</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
<arguments>
<dictionary>
<key>compilation.kind</key>
<value>compilation.platform.resource</value>
</dictionary>
<dictionary>
<key>compliance</key>
<value>pragmatic</value>
</dictionary>
<dictionary>
<key>resource.kind</key>
<value>xmi</value>
</dictionary>
<dictionary>
<key>trim-position</key>
<value>false</value>
</dictionary>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
</natures>
</projectDescription>
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Acceleo Acceleo Module Runtime Plug-in
Bundle-SymbolicName: tdt4250.spp.html.acceleo
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: tdt4250.spp.html.acceleo.Activator
Bundle-Vendor: Eclipse Modeling Project
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.emf.ecore,
org.eclipse.emf.ecore.xmi,
org.eclipse.ocl,
org.eclipse.ocl.ecore,
org.eclipse.acceleo.common;bundle-version="3.3.0",
org.eclipse.acceleo.model;bundle-version="3.3.0",
org.eclipse.acceleo.profiler;bundle-version="3.3.0",
org.eclipse.acceleo.engine;bundle-version="3.3.0",
com.google.guava
Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-ActivationPolicy: lazy
Eclipse-LazyStart: true
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.
jre.compilation.profile = JavaSE-11
<?xml version="1.0" encoding="UTF-8"?>
<project default="main" name="tdt4250.spp.html.acceleo">
<property name="ECLIPSE_HOME" value="../../../Eclipse/eclipse"/>
<property name="ECLIPSE_WORKSPACE" value="../.."/>
<!-- The classpath with only the dependencies used by the project -->
<path id="tdt4250.spp.html.acceleo.libraryclasspath">
<pathelement location="${ECLIPSE_WORKSPACE}/tdt4250.spp.html.acceleo/bin"/>
</path>
<path id="tdt4250.spp.html.acceleo.classpath">
<path refid="tdt4250.spp.html.acceleo.libraryclasspath"/>
</path>
<!-- The classpath with only the jars available in the plugin folder of Eclipse -->
<path id="tdt4250.spp.html.acceleo.libraryclasspath.alljars">
<pathelement location="../tdt4250.spp.html.acceleo/bin"/>
<fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
</path>
<path id="tdt4250.spp.html.acceleo.classpath.alljars">
<path refid="tdt4250.spp.html.acceleo.libraryclasspath.alljars"/>
</path>
<!-- The default task with the jars used by this project -->
<target name="main">
<java classname=".Main" classpathref="tdt4250.spp.html.acceleo.classpath">
<arg value="${model}"/>
<arg value="${target}"/>
</java>
</target>
<!--
In case of problem you can also try with all the jar available in your Eclipse
Keep in mind that having two versions of the same jar can create problems
-->
<target name="main.alljars">
<java classname=".Main" classpathref="tdt4250.spp.html.acceleo.classpath">
<arg value="${model}"/>
<arg value="${target}"/>
</java>
</target>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
<!-- You have to change the MODEL and the TARGET values -->
<project basedir="." default="mainSample" name="tdt4250.spp.html.acceleoSample">
<import file="../../tdt4250.spp.html.acceleo/tasks/main.xml"/>
<!-- Change the values of MODEL and TARGET to point to your model and output folder -->
<property name="MODEL" value="${basedir}/model/file.xmi"/>
<property name="TARGET" value="${basedir}/src-gen"/>
<target name="mainSample" description="Generate files in 'TARGET'">
<antcall target="main" >
<param name="model" value="${MODEL}"/>
<param name="target" value="${TARGET}"/>
</antcall>
</target>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" output="bin" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>tdt4250.spp.html</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
<arguments>
<dictionary>
<key>compilation.kind</key>
<value>compilation.platform.resource</value>
</dictionary>
<dictionary>
<key>compliance</key>
<value>pragmatic</value>
</dictionary>
<dictionary>
<key>resource.kind</key>
<value>xmi</value>
</dictionary>
<dictionary>
<key>trim-position</key>
<value>false</value>
</dictionary>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
</natures>
</projectDescription>
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Acceleo Html Module Runtime Plug-in
Bundle-SymbolicName: tdt4250.spp.html
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: tdt4250.spp.html.Activator
Bundle-Vendor: Eclipse Modeling Project
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.emf.ecore,
org.eclipse.emf.ecore.xmi,
org.eclipse.ocl,
org.eclipse.ocl.ecore,
org.eclipse.acceleo.common;bundle-version="3.3.0",
org.eclipse.acceleo.model;bundle-version="3.3.0",
org.eclipse.acceleo.profiler;bundle-version="3.3.0",
org.eclipse.acceleo.engine;bundle-version="3.7.8",
com.google.guava,
tdt4250.spp.model;bundle-version="0.1.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Eclipse-LazyStart: true
Export-Package: tdt4250.spp.html.main
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.
jre.compilation.profile = JavaSE-11
/*******************************************************************************
* Copyright (c) 2008, 2011 Obeo.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Obeo - initial API and implementation
*******************************************************************************/
package tdt4250.spp.html;
import org.eclipse.core.runtime.Plugin;
import org.osgi.framework.BundleContext;
/**
* The activator class controls the plug-in life cycle.
*/
public class Activator extends Plugin {
/**
* The plug-in ID.
*/
public static final String PLUGIN_ID = "tdt4250.spp.html";
/**
* The shared instance.
*/
private static Activator plugin;
/**
* The constructor.
*/
public Activator() {
}
/**
* {@inheritDoc}
*
* @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance.
*
* @return the shared instance
*/
public static Activator getDefault() {
return plugin;
}
}
<html>
<head>
<title>NTNU</title>
<meta charset="utf-8"/>
</head>
<body>
<h1>NTNU</h1>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<spp:University
xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spp="platform:/plugin/tdt4250.spp.model/model/spp.ecore"
xsi:schemaLocation="platform:/plugin/tdt4250.spp.model/model/spp.ecore spp.ecore"
name="NTNU">
<programs
name="Bachelor in IT">
<semesters
selectedCourses="//@institutes.0/@courses.0 //@institutes.0/@courses.7"/>
<semesters
season="Spring"
selectedCourses="//@institutes.0/@courses.4 //@institutes.1/@courses.5"/>
<semesters
year="2"
selectedCourses="//@institutes.0/@courses.5 //@institutes.1/@courses.2"/>
<mandatoryCourses
courses="//@institutes.0/@courses.0 //@institutes.0/@courses.3 //@institutes.0/@courses.4 //@institutes.0/@courses.5 //@institutes.0/@courses.7"/>
<electiveCourses
courses="//@institutes.0/@courses.1 //@institutes.0/@courses.2 //@institutes.0/@courses.6 //@institutes.1/@courses.3 //@institutes.1/@courses.4 //@institutes.1/@courses.5"/>
</programs>
<institutes
name="Institutt for datateknologi og informatikk">
<courses
code="TDT4110"
name="Informasjonsteknologi, grunnkurs"
credits="7.5"/>
<courses
code="TDT4250"
name="Avansert programvaredesign"
credits="7.5"
level="SecoundDegreeCourse"/>
<courses
code="TDT4175"
name="Informasjonssystemer"
credits="7.5"
level="ThirdYearCourse"/>
<courses
code="TDT4140"
name="Programvareutvikling"
credits="7.5"
level="IntermediateCourse"
season="Spring"/>
<courses
code="TDT4100"
name="Objektorientert programmering"
credits="7.5"
season="Spring"/>
<courses
code="TDT4120"
name="Algoritmer og datastrukturer"
credits="7.5"
level="IntermediateCourse"/>
<courses
code="IT2810"
name="Webutvikling"
credits="7.5"
level="IntermediateCourse"/>
<courses
code="IT2805"
name="Webteknologi"
credits="7.5"/>
</institutes>
<institutes
name="Institutt for matematiske fag">
<courses
code="MA1101"
name="Grunnkurs i analyse I"
credits="7.5"/>
<courses
code="MA1102"
name="Grunnkurs i analyse II"
credits="7.5"
season="Spring"/>
<courses
code="TMA4135"
name="Matematikk 4D"
credits="7.5"
level="ThirdYearCourse"/>
<courses
code="TMA4140"
name="Diskret matematikk"
credits="7.5"/>
<courses
code="MA1201"
name="Lineær algebra og geometri"
credits="7.5"/>
<courses
code="MA1103"
name="Flerdimensjonal analyse"
credits="7.5"
season="Spring"/>
</institutes>
<institutes
name="Institutt for lærerutdanning">
<courses
code="PPU4601 "
name="Pedagogikk 1"
credits="7.5"/>
<courses
code="PPU4611"
name="Praksis 1"/>
</institutes>
</spp:University>
/*******************************************************************************
* Copyright (c) 2008, 2012 Obeo.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Obeo - initial API and implementation
*******************************************************************************/
package tdt4250.spp.html.main;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
import org.eclipse.emf.common.util.BasicMonitor;
import org.eclipse.emf.common.util.Monitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.ResourceSet;
/**
* Entry point of the 'Studyplan2TextGenerator' generation module.
*
* @generated
*/
public class Studyplan2TextGenerator extends AbstractAcceleoGenerator {
/**
* The name of the module.
*
* @generated
*/
public static final String MODULE_FILE_NAME = "/tdt4250/spp/html/main/studyplan2TextGenerator";
/**
* The name of the templates that are to be generated.
*
* @generated
*/
public static final String[] TEMPLATE_NAMES = { "studyplan2TextGenerator" };
/**
* The list of properties files from the launch parameters (Launch configuration).
*
* @generated
*/
private List<String> propertiesFiles = new ArrayList<String>();
/**
* Allows the public constructor to be used. Note that a generator created
* this way cannot be used to launch generations before one of
* {@link #initialize(EObject, File, List)} or
* {@link #initialize(URI, File, List)} is called.
* <p>
* The main reason for this constructor is to allow clients of this
* generation to call it from another Java file, as it allows for the
* retrieval of {@link #getProperties()} and
* {@link #getGenerationListeners()}.
* </p>
*
* @generated
*/
public Studyplan2TextGenerator() {
// Empty implementation
}
/**
* This allows clients to instantiates a generator with all required information.
*
* @param modelURI
* URI where the model on which this generator will be used is located.
* @param targetFolder
* This will be used as the output folder for this generation : it will be the base path
* against which all file block URLs will be resolved.
* @param arguments
* If the template which will be called requires more than one argument taken from the model,
* pass them here.
* @throws IOException
* This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
* the model cannot be loaded.
* @generated
*/
public Studyplan2TextGenerator(URI modelURI, File targetFolder,
List<? extends Object> arguments) throws IOException {
initialize(modelURI, targetFolder, arguments);
}
/**
* This allows clients to instantiates a generator with all required information.
*
* @param model
* We'll iterate over the content of this element to find Objects matching the first parameter
* of the template we need to call.
* @param targetFolder
* This will be used as the output folder for this generation : it will be the base path
* against which all file block URLs will be resolved.
* @param arguments
* If the template which will be called requires more than one argument taken from the model,
* pass them here.
* @throws IOException
* This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
* @generated
*/
public Studyplan2TextGenerator(EObject model, File targetFolder,
List<? extends Object> arguments) throws IOException {
initialize(model, targetFolder, arguments);
}
/**
* This can be used to launch the generation from a standalone application.
*
* @param args
* Arguments of the generation.
* @generated
*/
public static void main(String[] args) {
try {
if (args.length < 2) {
System.out.println("Arguments not valid : {model, folder}.");
} else {
URI modelURI = URI.createFileURI(args[0]);
File folder = new File(args[1]);
List<String> arguments = new ArrayList<String>();
/*
* If you want to change the content of this method, do NOT forget to change the "@generated"
* tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
* of the Acceleo module with the main template that has caused the creation of this class will
* revert your modifications.
*/
/*
* Add in this list all the arguments used by the starting point of the generation
* If your main template is called on an element of your model and a String, you can
* add in "arguments" this "String" attribute.
*/
Studyplan2TextGenerator generator = new Studyplan2TextGenerator(modelURI, folder, arguments);
/*
* Add the properties from the launch arguments.
* If you want to programmatically add new properties, add them in "propertiesFiles"
* You can add the absolute path of a properties files, or even a project relative path.
* If you want to add another "protocol" for your properties files, please override
* "getPropertiesLoaderService(AcceleoService)" in order to return a new property loader.
* The behavior of the properties loader service is explained in the Acceleo documentation
* (Help -> Help Contents).
*/
for (int i = 2; i < args.length; i++) {
generator.addPropertiesFile(args[i]);
}
generator.doGenerate(new BasicMonitor());
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* Launches the generation described by this instance.
*
* @param monitor
* This will be used to display progress information to the user.
* @throws IOException