37 lines
886 B
Java
37 lines
886 B
Java
package org.warp.picalculator.math.rules;
|
|
|
|
import org.warp.picalculator.Error;
|
|
import org.warp.picalculator.math.Function;
|
|
|
|
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
|
import jdk.nashorn.internal.objects.annotations.SpecializedFunction;
|
|
|
|
/**
|
|
* Rule interface
|
|
* @author Andrea Cavalli
|
|
*
|
|
*/
|
|
public interface Rule {
|
|
/**
|
|
* Get rule name
|
|
* @return
|
|
*/
|
|
public default String getRuleName() {
|
|
return "UnnamedRule1";
|
|
}
|
|
|
|
/**
|
|
* Get rule type
|
|
* @return
|
|
*/
|
|
@SpecializedFunction
|
|
public RuleType getRuleType();
|
|
|
|
/**
|
|
*
|
|
* @param func
|
|
* @return <ul><li><code>null</code> if it's not executable on the function <b>func</b></li><li>An <code>ObjectArrayList<Function></code> if it did something</li></ul>
|
|
* @throws Error
|
|
*/
|
|
public ObjectArrayList<Function> execute(Function func) throws Error, InterruptedException;
|
|
} |