Terminal.java
package progen.kernel.functions;
import java.util.List;
import java.util.Map;
import progen.kernel.tree.Node;
import progen.userprogram.UserProgram;
/**
* Clase abstracta que representa a los elementos terminales tal y como se
* entienden en Programación Genética.
*
* Define los métodos necesarios para definir los distintos tipos de elementos
* terminales.
*
* @author jirsis
* @since 2.0
*/
public abstract class Terminal extends Function {
private static final long serialVersionUID = 69970053838836085L;
/** Valor concreto del terminal del árbol. */
private Object value;
/**
* Constructor por defecto que recibe dos parámetros y llama al constructor de
* la clase padre
*
* @see Function
* @param signature
* valor de retorno del terminal.
* @param symbol
* con el que se representará el terminal.
*/
public Terminal(String signature, String symbol) {
super(signature, symbol);
value = null;
}
/**
* Define el valor que tendrá dicho terminal.
*
* @param value
* el valor del terminal.
*/
public void setValue(Object value) {
this.value = value;
}
/**
* Devuelve el valor concreto del terminal.
*
* @return el valor concreto del terminal.
*/
public Object getValue() {
return value;
}
@Override
public Object evaluate(List<Node> arguments, UserProgram userProgram, Map<String, Object> returnAddr) {
return getValue();
}
}