
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