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

org.joinedworkz.common.javax.DaoCartridge Maven / Gradle / Ivy

package org.joinedworkz.common.javax;

import java.util.List;
import java.util.Properties;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.eclipse.xtext.xbase.lib.Extension;
import org.joinedworkz.common.helper.CmnModelHelper;
import org.joinedworkz.common.java.ClassGeneratorContext;
import org.joinedworkz.common.javax.generator.DaoClassGenerator;
import org.joinedworkz.common.javax.generator.DaoInterfaceGenerator;
import org.joinedworkz.common.javax.generator.LiquibaseGenerator;
import org.joinedworkz.core.facility.AbstractCartridge;
import org.joinedworkz.core.facility.Outlet;
import org.joinedworkz.core.facility.Outlets;
import org.joinedworkz.core.model.CmnComplexType;
import org.joinedworkz.core.model.CmnModel;
import org.joinedworkz.core.model.CmnObject;

@Singleton
@SuppressWarnings("all")
public class DaoCartridge extends AbstractCartridge {
  @Inject
  @Extension
  protected CmnModelHelper cmnModelHelper;

  @Inject
  protected DaoInterfaceGenerator daoInterfaceGenerator;

  @Inject
  protected DaoClassGenerator daoClassGenerator;

  @Override
  public void apply(final CmnObject cmnObj, final Outlets outlets) {
    this.apply(cmnObj, outlets, null);
  }

  @Override
  public void apply(final CmnObject obj, final Outlets outlets, final Properties properties) {
    final Outlet generatedJavaSourceSlot = outlets.get("generatedJavaSource");
    final Outlet liquibaseConfiguration = outlets.get("liquibaseConfiguration");
    if ((obj instanceof CmnModel)) {
      new LiquibaseGenerator(((CmnModel)obj), liquibaseConfiguration).generateConfiguration();
      List _modelElements = ((CmnModel)obj).getModelElements();
      for (final CmnObject modelElement : _modelElements) {
        this.generateModelElement(modelElement, generatedJavaSourceSlot, properties);
      }
    }
  }

  public void generateModelElement(final CmnObject obj, final Outlet outlet, final Properties properties) {
    if ((obj instanceof CmnComplexType)) {
      Boolean _abstract = ((CmnComplexType)obj).getAbstract();
      boolean _not = (!(_abstract).booleanValue());
      if (_not) {
        this.daoClassGenerator.generateClass(this.createGeneratorContext(((CmnComplexType)obj), outlet, properties));
        this.daoInterfaceGenerator.generateClass(this.createGeneratorContext(((CmnComplexType)obj), outlet, properties));
      }
    }
  }

  public  ClassGeneratorContext createGeneratorContext(final T classObject, final Outlet outlet, final Properties properties) {
    return new ClassGeneratorContext(classObject, outlet, properties);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy