X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.scl.runtime%2Fgeneration%2Forg%2Fsimantics%2Fscl%2Fruntime%2Fgeneration%2FGenerateTuples.java;fp=bundles%2Forg.simantics.scl.runtime%2Fgeneration%2Forg%2Fsimantics%2Fscl%2Fruntime%2Fgeneration%2FGenerateTuples.java;h=291d68bcb959b3e04cf6770794949f021f4710fc;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.runtime/generation/org/simantics/scl/runtime/generation/GenerateTuples.java b/bundles/org.simantics.scl.runtime/generation/org/simantics/scl/runtime/generation/GenerateTuples.java new file mode 100755 index 000000000..291d68bcb --- /dev/null +++ b/bundles/org.simantics.scl.runtime/generation/org/simantics/scl/runtime/generation/GenerateTuples.java @@ -0,0 +1,119 @@ +package org.simantics.scl.runtime.generation; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.PrintStream; +import java.net.URL; + +public class GenerateTuples { + public static final String PACKAGE = "org.simantics.scl.runtime.tuple"; + public static final int MAX_ARITY = 32; + + public static final String HEADER = + "/**\n" + + " * This code is generated in " + GenerateTuples.class.getName() + ".\n" + + " * Do not edit manually!\n" + + " */" + ; + + private static void generateTupleN(PrintStream p, int n) { + p.println(HEADER); + p.println("package " + PACKAGE + ";"); + p.println(); + p.println("public class Tuple" + n + " implements Tuple {"); + for(int i=0;i0) + p.print(", "); + p.print("Object c" + i); + } + p.println(") {"); + for(int i=0;i 0) + p.print(", "); + p.print("c" + i); + } + p.println(" };"); + p.println(" }"); + p.println(); + p.println(" @Override"); + p.println(" public boolean equals(Object obj) {"); + p.println(" if(obj == this)"); + p.println(" return true;"); + p.println(" if(obj == null || obj.getClass() != getClass())"); + p.println(" return false;"); + p.println(" Tuple"+n+" tuple = (Tuple"+n+")obj;"); + for(int i=0;i 0) + p.println(" b.append(',');"); + p.println(" b.append(c" + i + ");"); + } + p.println(" b.append(')');"); + p.println(" return b.toString();"); + p.println(" }"); + p.println("}"); + } + + public static void main(String[] args) throws Exception { + URL url = GenerateFunctions.class.getResource("."); + File dir = new File(url.getPath()); + while(!new File(dir, "src").exists()) + dir = dir.getParentFile(); + dir = new File(dir, "src"); + dir = new File(dir, PACKAGE.replace('.', '/')); + dir.mkdirs(); + + for(int n=2;n<=MAX_ARITY;++n) { + PrintStream ps = + new PrintStream(new FileOutputStream(new File(dir, "Tuple"+n+".java"))); + generateTupleN(ps, n); + } + } +}