All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.pelle.mango.dsl.generator.MangoGenerator Maven / Gradle / Ivy

package io.pelle.mango.dsl.generator;

import com.google.common.collect.Iterables;
import com.google.inject.Inject;
import io.pelle.mango.dsl.generator.GeneratorConstants;
import io.pelle.mango.dsl.generator.VOMapperGenerator;
import io.pelle.mango.dsl.generator.client.ClientGenerator;
import io.pelle.mango.dsl.generator.server.ServerGenerator;
import io.pelle.mango.dsl.generator.server.SpringGenerator;
import io.pelle.mango.dsl.generator.util.NameUtils;
import io.pelle.mango.dsl.generator.xml.XmlGenerator;
import io.pelle.mango.dsl.mango.Model;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.xtext.generator.IFileSystemAccess;
import org.eclipse.xtext.generator.IGenerator;
import org.eclipse.xtext.xbase.lib.Extension;
import org.eclipse.xtext.xbase.lib.IteratorExtensions;

@SuppressWarnings("all")
public class MangoGenerator implements IGenerator {
  @Inject
  @Extension
  private VOMapperGenerator _vOMapperGenerator;
  
  @Inject
  @Extension
  private NameUtils _nameUtils;
  
  @Inject
  @Extension
  private ClientGenerator clientGenerator;
  
  @Inject
  @Extension
  private ServerGenerator serverGenerator;
  
  @Inject
  @Extension
  private XmlGenerator xmlGenerator;
  
  @Inject
  @Extension
  private SpringGenerator _springGenerator;
  
  public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
    this.clientGenerator.doGenerate(resource, fsa);
    this.serverGenerator.doGenerate(resource, fsa);
    this.xmlGenerator.doGenerate(resource, fsa);
    TreeIterator _allContents = resource.getAllContents();
    Iterable _iterable = IteratorExtensions.toIterable(_allContents);
    Iterable _filter = Iterables.filter(_iterable, Model.class);
    for (final Model model : _filter) {
      {
        String _springDBApplicationContextFullQualifiedFileName = this._nameUtils.springDBApplicationContextFullQualifiedFileName(model);
        CharSequence _compileSpringDBApplicationContext = this._springGenerator.compileSpringDBApplicationContext(model);
        fsa.generateFile(_springDBApplicationContextFullQualifiedFileName, GeneratorConstants.SERVER_GEN_OUTPUT, _compileSpringDBApplicationContext);
        String _springPersistenceXMLFullQualifiedFileName = this._nameUtils.springPersistenceXMLFullQualifiedFileName(model);
        CharSequence _compilePersistenceXml = this._springGenerator.compilePersistenceXml(model);
        fsa.generateFile(_springPersistenceXMLFullQualifiedFileName, GeneratorConstants.SERVER_GEN_OUTPUT, _compilePersistenceXml);
        String _baseApplicationContextFullQualifiedFileName = this._nameUtils.baseApplicationContextFullQualifiedFileName(model);
        CharSequence _compileBaseApplicationContext = this._springGenerator.compileBaseApplicationContext(model);
        fsa.generateFile(_baseApplicationContextFullQualifiedFileName, GeneratorConstants.SERVER_GEN_OUTPUT, _compileBaseApplicationContext);
        String _voMapperFullQualifiedFileName = this._nameUtils.voMapperFullQualifiedFileName(model);
        CharSequence _compileVOMapper = this._vOMapperGenerator.compileVOMapper(model);
        fsa.generateFile(_voMapperFullQualifiedFileName, GeneratorConstants.SERVER_GEN_OUTPUT, _compileVOMapper);
      }
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy