blob: 21455e3848d1ec3d12a611f1b9436f4a3f9a3fb3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 Bosch Software Innovations GmbH and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* The Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Bosch Software Innovations GmbH - Please refer to git log
*
*******************************************************************************/
package org.eclipse.vorto.codegen.examples.webdevice;
import static org.eclipse.vorto.codegen.api.tasks.GeneratorConfiguration.configuration;
import static org.eclipse.vorto.codegen.api.tasks.GeneratorConfiguration.eclipseProject;
import static org.eclipse.vorto.codegen.api.tasks.GeneratorConfiguration.mavenNature;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.vorto.codegen.api.ICodeGenerator;
import org.eclipse.vorto.codegen.api.tasks.ITemplate;
import org.eclipse.vorto.codegen.examples.webdevice.tasks.ConfigurationClassGeneratorTask;
import org.eclipse.vorto.codegen.examples.webdevice.tasks.FaultClassGeneratorTask;
import org.eclipse.vorto.codegen.examples.webdevice.tasks.FunctionBlockClassGeneratorTask;
import org.eclipse.vorto.codegen.examples.webdevice.tasks.IndexHtmlFileGeneratorTask;
import org.eclipse.vorto.codegen.examples.webdevice.tasks.ModuleUtil;
import org.eclipse.vorto.codegen.examples.webdevice.tasks.ServiceClassGeneratorTask;
import org.eclipse.vorto.codegen.examples.webdevice.tasks.StatusClassGeneratorTask;
import org.eclipse.vorto.codegen.examples.webdevice.tasks.WebXmlGeneratorTask;
import org.eclipse.vorto.functionblock.FunctionblockModel;
import org.eclipse.vorto.codegen.examples.webdevice.tasks.templates.PomFileTemplate;
public class WebDeviceGenerator implements ICodeGenerator {
private static final ITemplate POMFILE_TEMPLATE = new PomFileTemplate();
@Override
public void generate(FunctionblockModel fbm, IProgressMonitor monitor) {
eclipseProject(ModuleUtil.getArtifactId(fbm),
configuration(mavenNature(POMFILE_TEMPLATE)),
new IndexHtmlFileGeneratorTask(), new ServiceClassGeneratorTask(),
new WebXmlGeneratorTask(), new FunctionBlockClassGeneratorTask(),
new ConfigurationClassGeneratorTask(), new StatusClassGeneratorTask(),
new FaultClassGeneratorTask()).generate(fbm, monitor);
}
}