ARG.java
package progen.kernel.functions;
import java.util.List;
import java.util.Map;
import progen.kernel.tree.Node;
import progen.userprogram.UserProgram;
/**
* RepresentaciĆ³n de los distintos argumentos que puede recibir un ADF.
*
* @author jirsis
* @since 2.0
*/
public class ARG extends Terminal {
private static final long serialVersionUID = -4621083319210129287L;
/** Identificador el ADF del que es argumento. */
private String idADF;
/**
* Constructor por defecto que recibe el nombre del ADF del que es argumento,
* el identidicador dentro del conjunto de argumentos totales y el tipo de
* valor que puede almacenar.
*
* @param idADF
* Identifiador del ADF del que es argumento.
* @param signature
* Signatura o tipo de valor que almacena.
* @param argumentPosition
* Identificador de la posiciĆ³n que representa dentro del conjunto de
* argumentos del ADF.
*/
public ARG(String idADF, String signature, int argumentPosition) {
super(signature, "ARG" + argumentPosition);
this.idADF = idADF;
}
@Override
public Object evaluate(List<Node> arguments, UserProgram userProgram, Map<String, Object> returnAddr) {
return ((Node) returnAddr.get(idADF + "-" + super.getSymbol())).evaluate(userProgram, returnAddr);
}
}