/** * This code is generated in org.simantics.scl.runtime.generation.GenerateFunctions. * Do not edit manually! */ package org.simantics.scl.runtime.function; import java.util.Arrays; @SuppressWarnings("all") public abstract class FunctionImpl7 implements Function { @Override public Object apply(Object p0) { return new UnsaturatedFunction1(this, p0); } @Override public Object apply(Object p0, Object p1) { return new UnsaturatedFunction2(this, p0, p1); } @Override public Object apply(Object p0, Object p1, Object p2) { return new UnsaturatedFunction3(this, p0, p1, p2); } @Override public Object apply(Object p0, Object p1, Object p2, Object p3) { return new UnsaturatedFunction4(this, p0, p1, p2, p3); } @Override public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4) { return new UnsaturatedFunction5(this, p0, p1, p2, p3, p4); } @Override public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) { return new UnsaturatedFunction6(this, p0, p1, p2, p3, p4, p5); } @Override public abstract R apply(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6); @Override public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) { try { return ((Function)apply((P0)p0, (P1)p1, (P2)p2, (P3)p3, (P4)p4, (P5)p5, (P6)p6)).apply(p7); } catch(ClassCastException e) { throw new CalledWithTooManyParameters(); } } @Override public Object applyArray(Object ... ps) { switch(ps.length) { case 0: return this; case 1: return new UnsaturatedFunction1(this, ps[0]); case 2: return new UnsaturatedFunction2(this, ps[0], ps[1]); case 3: return new UnsaturatedFunction3(this, ps[0], ps[1], ps[2]); case 4: return new UnsaturatedFunction4(this, ps[0], ps[1], ps[2], ps[3]); case 5: return new UnsaturatedFunction5(this, ps[0], ps[1], ps[2], ps[3], ps[4]); case 6: return new UnsaturatedFunction6(this, ps[0], ps[1], ps[2], ps[3], ps[4], ps[5]); case 7: return apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4], (P5)ps[5], (P6)ps[6]); case 8: try { return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4], (P5)ps[5], (P6)ps[6])).apply(ps[7]); } catch(ClassCastException e) { throw new CalledWithTooManyParameters(); } case 9: try { return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4], (P5)ps[5], (P6)ps[6])).apply(ps[7], ps[8]); } catch(ClassCastException e) { throw new CalledWithTooManyParameters(); } case 10: try { return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4], (P5)ps[5], (P6)ps[6])).apply(ps[7], ps[8], ps[9]); } catch(ClassCastException e) { throw new CalledWithTooManyParameters(); } case 11: try { return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4], (P5)ps[5], (P6)ps[6])).apply(ps[7], ps[8], ps[9], ps[10]); } catch(ClassCastException e) { throw new CalledWithTooManyParameters(); } case 12: try { return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4], (P5)ps[5], (P6)ps[6])).apply(ps[7], ps[8], ps[9], ps[10], ps[11]); } catch(ClassCastException e) { throw new CalledWithTooManyParameters(); } case 13: try { return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4], (P5)ps[5], (P6)ps[6])).apply(ps[7], ps[8], ps[9], ps[10], ps[11], ps[12]); } catch(ClassCastException e) { throw new CalledWithTooManyParameters(); } case 14: try { return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4], (P5)ps[5], (P6)ps[6])).apply(ps[7], ps[8], ps[9], ps[10], ps[11], ps[12], ps[13]); } catch(ClassCastException e) { throw new CalledWithTooManyParameters(); } case 15: try { return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4], (P5)ps[5], (P6)ps[6])).apply(ps[7], ps[8], ps[9], ps[10], ps[11], ps[12], ps[13], ps[14]); } catch(ClassCastException e) { throw new CalledWithTooManyParameters(); } default: try { return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4], (P5)ps[5], (P6)ps[6])).apply(Arrays.copyOfRange(ps, 7, ps.length)); } catch(ClassCastException e) { throw new CalledWithTooManyParameters(); } } } }