Function.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package me.hammerle.snuviscript.code;
  2. import me.hammerle.snuviscript.variable.Variable;
  3. import me.hammerle.snuviscript.variable.ArrayVariable;
  4. import me.hammerle.snuviscript.variable.LocalArrayVariable;
  5. public class Function extends InputProvider
  6. {
  7. private final BasicFunction function;
  8. private final InputProvider[] input;
  9. public Function(BasicFunction function, InputProvider[] input)
  10. {
  11. this.function = function;
  12. this.input = input;
  13. }
  14. @Override
  15. public String toString()
  16. {
  17. StringBuilder sb = new StringBuilder(function.getName());
  18. sb.append("(");
  19. for(InputProvider in : input)
  20. {
  21. sb.append(in);
  22. sb.append(", ");
  23. }
  24. if(input.length > 0)
  25. {
  26. sb.delete(sb.length() - 2, sb.length());
  27. }
  28. sb.append(")");
  29. return sb.toString();
  30. }
  31. @Override
  32. public Object get(Script sc)
  33. {
  34. return function.execute(sc, input);
  35. }
  36. @Override
  37. public Object getArray(Script sc)
  38. {
  39. Object o = function.execute(sc, input);
  40. if(o instanceof ArrayVariable || o instanceof LocalArrayVariable)
  41. {
  42. return o;
  43. }
  44. return null;
  45. }
  46. @Override
  47. public double getDouble(Script sc)
  48. {
  49. return (double) function.execute(sc, input);
  50. }
  51. @Override
  52. public String getString(Script sc)
  53. {
  54. return String.valueOf(function.execute(sc, input));
  55. }
  56. @Override
  57. public boolean getBoolean(Script sc)
  58. {
  59. return (Boolean) function.execute(sc, input);
  60. }
  61. @Override
  62. public Variable getVariable(Script sc)
  63. {
  64. return (Variable) function.execute(sc, input);
  65. }
  66. }