![JAR search and dependency download from the Maven repository](/logo.png)
info.scce.addlib.codegenerator.JavaGenerator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of addlib Show documentation
Show all versions of addlib Show documentation
The Java Library for Algebraic Decision Diagrams, Code Generation, and Layouting
/* 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