| /******************************************************************************* |
| * Copyright (c) 2011 protos software gmbh (http://www.protos.de). |
| * 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: |
| * Henrik Rentz-Reichert (initial contribution) |
| * |
| *******************************************************************************/ |
| |
| package org.eclipse.etrice.generator.java.gen |
| |
| import com.google.inject.Inject |
| import com.google.inject.Singleton |
| import org.eclipse.emf.ecore.resource.Resource |
| import org.eclipse.etrice.core.genmodel.etricegen.Root |
| import org.eclipse.xtext.generator.IFileSystemAccess |
| import org.eclipse.xtext.generator.IGenerator |
| import org.eclipse.etrice.generator.generic.PrepareFileSystem |
| import org.eclipse.etrice.generator.java.Main |
| |
| @Singleton |
| class MainGen implements IGenerator { |
| |
| @Inject DataClassGen dataClassGen |
| @Inject EnumerationTypeGen enumTypeGen |
| @Inject ProtocolClassGen protocolClassGen |
| @Inject ActorClassGen actorClassGen |
| @Inject ActorClassDataGen actorClassDataGen |
| @Inject OptionalActorInterfaceGen optionalActorInterfaceGen |
| @Inject OptionalActorFactoryGen optionalActorFactoryGen |
| @Inject NodeGen nodeGen |
| @Inject NodeRunnerGen nodeRunnerGen |
| @Inject PrepareFileSystem prepFS |
| |
| override void doGenerate(Resource resource, IFileSystemAccess fsa) { |
| prepFS.prepareCodeTargetPaths(resource) |
| for (e: resource.contents){ |
| if (e instanceof Root) { |
| doGenerate(e as Root) |
| } |
| } |
| } |
| |
| def void doGenerate(Root e) { |
| dataClassGen.doGenerate(e) |
| enumTypeGen.doGenerate(e) |
| protocolClassGen.doGenerate(e) |
| actorClassGen.doGenerate(e) |
| if (Main::settings.isGenerateStoreDataObj) |
| actorClassDataGen.doGenerate(e) |
| optionalActorInterfaceGen.doGenerate(e) |
| optionalActorFactoryGen.doGenerate(e) |
| nodeGen.doGenerate(e); |
| |
| if (!e.library) { |
| nodeRunnerGen.doGenerate(e) |
| } |
| } |
| } |