BasicFunction.java 630 B

12345678910111213141516171819202122232425262728
  1. package me.hammerle.snuviscript.code;
  2. import java.util.function.BiFunction;
  3. public final class BasicFunction
  4. {
  5. private final String name;
  6. private final BiFunction<Script, InputProvider[], Object> f;
  7. public BasicFunction(String name, BiFunction<Script, InputProvider[], Object> f)
  8. {
  9. this.name = name;
  10. this.f = f;
  11. }
  12. public String getName()
  13. {
  14. return name;
  15. }
  16. public Object execute(Script sc, InputProvider[] input)
  17. {
  18. sc.currentFunction = name;
  19. Object o = f.apply(sc, input);
  20. sc.currentFunction = name;
  21. return o;
  22. }
  23. }