
info.scce.addlib.codegenerator.JavaGenerator Maven / Gradle / Ivy
/* This file was generated with the ADD-Lib Gen Tools
* http://add-lib.scce.info/ */
package info.scce.addlib.codegenerator;
import info.scce.addlib.dd.LabelledRegularDD;
import info.scce.addlib.dd.RegularDD;
import info.scce.addlib.traverser.PreorderTraverser;
import java.io.PrintStream;
import java.util.List;
public class JavaGenerator> extends CodeGenerator {
private String paramPackage;
private String paramImport;
private String paramParamType = "Predicates";
private String paramClassName = "ADDLibDecisionService";
private boolean enableableParamStaticMethods;
public JavaGenerator withPackage(String pac) {
this.paramPackage = pac;
return this;
}
public JavaGenerator withImport(String imp) {
this.paramImport = imp;
return this;
}
public JavaGenerator withParamType(String par) {
this.paramParamType = par;
return this;
}
public JavaGenerator withClassName(String cla) {
this.paramClassName = cla;
return this;
}
public JavaGenerator withStaticMethodsEnabled(boolean sta) {
this.enableableParamStaticMethods = sta;
return this;
}
public JavaGenerator withStaticMethodsEnabled() {
return withStaticMethodsEnabled(true);
}
public JavaGenerator withStaticMethodsDisabled() {
return withStaticMethodsEnabled(false);
}
@Override
public void generate(PrintStream out, List> roots) {
out.println("/* This file was generated with the ADD-Lib");
out.println(" * http://add-lib.scce.info/ */");
if (this.paramPackage != null) {
out.println("");
out.print("package ");
if (this.paramPackage != null)
out.print(this.paramPackage);
out.println(";");
}
if (this.paramImport != null) {
out.println("");
out.print("import ");
if (this.paramImport != null)
out.print(this.paramImport);
out.println(";");
}
out.println("");
out.print("public class ");
if (this.paramClassName != null)
out.print(this.paramClassName);
out.println(" {");
for (LabelledRegularDD x0 : roots) {
out.println("");
out.print(" public ");
if (this.enableableParamStaticMethods) {
out.print("static ");
}
returnType(out);
out.print(" ");
out.print(x0.label());
out.print("(");
paramList(out);
out.println(") {");
out.print(" return eval");
out.print(x0.dd().ptr());
out.println("(predicates);");
out.println(" }");
}
for (D x1 : new PreorderTraverser(unlabelledRoots(roots))) {
if (!x1.isConstant()) {
out.println("");
out.print(" private ");
if (this.enableableParamStaticMethods) {
out.print("static ");
}
returnType(out);
out.print(" eval");
out.print(x1.ptr());
out.print("(");
paramList(out);
out.println(") {");
out.print(" if (");
varCondition(out, x1);
out.println(")");
out.print(" return eval");
out.print(x1.t().ptr());
out.println("(predicates);");
out.println(" else");
out.print(" return eval");
out.print(x1.e().ptr());
out.println("(predicates);");
out.println(" }");
}
}
for (D x2 : new PreorderTraverser(unlabelledRoots(roots))) {
if (x2.isConstant()) {
out.println("");
out.print(" private ");
if (this.enableableParamStaticMethods) {
out.print("static ");
}
returnType(out);
out.print(" eval");
out.print(x2.ptr());
out.print("(");
paramList(out);
out.println(") {");
out.print(" return ");
resultInstatiation(out, x2);
out.println(";");
out.println(" }");
}
}
out.println("}");
}
protected void paramList(PrintStream out) {
if (this.paramParamType != null)
out.print(this.paramParamType);
out.print(" predicates");
}
protected void returnType(PrintStream out) {
out.print("String");
}
protected void resultInstatiation(PrintStream out, D x2) {
out.print("\"");
out.print(x2.toString());
out.print("\"");
}
protected void varCondition(PrintStream out, D x1) {
out.print("predicates.");
out.print(x1.readName());
out.print("()");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy