Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Vorto » Generate several files(How to generate several files)
Generate several files [message #1730381] Mon, 25 April 2016 11:16 Go to next message
Komaromi Mate is currently offline Komaromi MateFriend
Messages: 6
Registered: April 2016
Location: Hungary
Junior Member
Hey guys! I need some help, i hope you can enlight me Smile

Im sitll working on my generator, i want to generate more than one file, but i dont really understand. I have checked the example generator codes, but i didnt get the point. I assume its more complicated compared to what i need. So, can you give me an example of code for this easy problem:

I want one file named "FirstFile", which contains "I am the first generated file!!", and one file named "SecondFile", which contains "I am the second file!!" , in the extend file. This is the code ive got:

package org.eclipse.vorto.example

import org.eclipse.core.runtime.IProgressMonitor
import org.eclipse.vorto.codegen.api.ICodeGenerator
import org.eclipse.vorto.codegen.api.tasks.Generated
import org.eclipse.vorto.codegen.api.tasks.ICodeGeneratorTask
import org.eclipse.vorto.codegen.api.tasks.IOutputter
import org.eclipse.vorto.codegen.api.tasks.eclipse.EclipseProjectGenerator
import org.eclipse.vorto.core.api.model.informationmodel.InformationModel

class MyGenerator implements ICodeGenerator<InformationModel> {

	override generate(InformationModel infomodel, IProgressMonitor monitor) {
		new EclipseProjectGenerator(infomodel.getName()+"Device").addTask(new EmptyJavaGeneratorTask()).javaNature().generate(infomodel,monitor);

	public static class EmptyJavaGeneratorTask implements ICodeGeneratorTask<InformationModel> {
		public override generate(InformationModel infomodel, IOutputter outputter) {
	    	outputter.output(new Generated(infomodel.getName(),null, getContent));
	    def String getContent() {
	   		return '//"I am the first generated file!!';

	override getName() {
		return "FirstFile";
Re: Generate several files [message #1730391 is a reply to message #1730381] Mon, 25 April 2016 11:44 Go to previous message
Olaf Weinmann is currently offline Olaf WeinmannFriend
Messages: 29
Registered: May 2015
Junior Member
Hello Komaromi,

you can create a code generator task for every file that you want to create. The generator class could look like follows:

public class MyGenerator implements IVortoCodeGenerator {
	public IGenerationResult generate(InformationModel infomodel, IMappingContext mappingContext) {
		GenerationResultZip zipOutputter = new GenerationResultZip(infomodel,getServiceKey());
		ChainedCodeGeneratorTask<InformationModel> generator = new ChainedCodeGeneratorTask<InformationModel>();
		generator.addTask(new EmptyJavaGeneratorTask();
		generator.addTask(new EmptyJavaGeneratorTask2();
		generator.generate(infomodel ,mappingContext, zipOutputter);
		return zipOutputter;

	public String getServiceKey() {
		return "MyGenerator";

One of the related tasks could look like this:

public class EmptyJavaGeneratorTask extends
	AbstractTemplateGeneratorTask<InformationModel> {
	public String getFileName(InformationModel im) {
		return im.getName();
		public String getPath(InformationModel im) {
		return "myPath";
	public ITemplate<InformationModel> getTemplate() {
		return new EmptyTemplate1();

And a related template xtend-class could look like this:

class EmptyTemplate1 implements ITemplate<InformationModel>{
	override getContent(InformationModel im) {
			Hello World

Please let me know if this helps!


Previous Topic:Java library for accessing Vorto repository
Next Topic:Use of events in Functional Block
Goto Forum:

Current Time: Wed Jun 16 08:12:42 GMT 2021

Powered by FUDForum. Page generated in 0.01674 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top