WarpPI/core/src/main/java/it/cavallium/warppi/math/functions/Joke.java

69 lines
2.0 KiB
Java

package it.cavallium.warppi.math.functions;
import it.cavallium.warppi.gui.expression.blocks.Block;
import it.cavallium.warppi.math.Function;
import it.cavallium.warppi.math.MathContext;
import it.cavallium.warppi.math.rules.Rule;
import it.cavallium.warppi.util.Error;
import it.cavallium.warppi.util.Errors;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
public class Joke implements Function {
public static final byte FISH = 0;
public static final byte TORNADO = 1;
public static final byte SHARKNADO = 2;
@SuppressWarnings("unused")
private static final String[] jokes = new String[] { "", "TORNADO", "SHARKNADO" };
@SuppressWarnings("unused")
private static final int[] jokesFont = new int[] { 4, -1, -1 };
private final byte joke;
private final MathContext root;
public Joke(final MathContext root, final byte joke) {
this.root = root;
this.joke = joke;
}
@Override
public ObjectArrayList<Function> simplify(final Rule rule) throws Error, InterruptedException {
return rule.execute(this);
}
@Override
public MathContext getMathContext() {
return root;
}
@Override
public Function clone() {
return new Joke(root, joke);
}
@Override
public Function clone(MathContext c) {
return new Joke(c, joke);
}
@Override
public Function setParameter(final int index, final Function var) throws IndexOutOfBoundsException {
throw new IndexOutOfBoundsException();
}
@Override
public Function getParameter(final int index) throws IndexOutOfBoundsException {
throw new IndexOutOfBoundsException();
}
@Override
public ObjectArrayList<Block> toBlock(final MathContext context) throws Error {
// TODO Auto-generated method stub
throw new Error(Errors.NOT_IMPLEMENTED, "Unknown function " + getClass().getSimpleName());
}
@Override
public <Argument, Result> Result accept(final Function.Visitor<Argument, Result> visitor, final Argument argument) {
return visitor.visit(this, argument);
}
}