1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package me.hammerle.snuviscript.code;
- import me.hammerle.snuviscript.math.Fraction;
- import me.hammerle.snuviscript.variable.Variable;
- import me.hammerle.snuviscript.variable.ArrayVariable;
- import me.hammerle.snuviscript.variable.LocalArrayVariable;
- public class Function extends InputProvider
- {
- private final BasicFunction function;
- private InputProvider[] input;
-
- public Function(BasicFunction function, InputProvider[] input)
- {
- this.function = function;
- this.input = input;
- }
- @Override
- public String toString()
- {
- StringBuilder sb = new StringBuilder(function.getName());
- sb.append("(");
- for(InputProvider in : input)
- {
- sb.append(in);
- sb.append(", ");
- }
- if(input.length > 0)
- {
- sb.delete(sb.length() - 2, sb.length());
- }
- sb.append(")");
- return sb.toString();
- }
- @Override
- public Object get(Script sc)
- {
- return function.execute(sc, input);
- }
-
- @Override
- public Object getArray(Script sc)
- {
- Object o = function.execute(sc, input);
- if(o instanceof ArrayVariable || o instanceof LocalArrayVariable)
- {
- return o;
- }
- return null;
- }
-
- @Override
- public Fraction getFraction(Script sc)
- {
- return (Fraction) function.execute(sc, input);
- }
-
- @Override
- public int getInt(Script sc)
- {
- return (Integer) function.execute(sc, input);
- }
-
- @Override
- public double getDouble(Script sc)
- {
- return ((Number) function.execute(sc, input)).doubleValue();
- }
-
- @Override
- public String getString(Script sc)
- {
- return String.valueOf(function.execute(sc, input));
- }
-
- @Override
- public Variable getVariable(Script sc)
- {
- return (Variable) function.execute(sc, input);
- }
- }
|