Class Lambda

java.lang.Object
org.moeaframework.util.tree.Node
org.moeaframework.util.tree.Lambda
All Implemented Interfaces:
Serializable

public class Lambda extends Node
The node for defining an immutable, anonymous function. Unlike Define, the behavior (body) of a Lambda can not be modified. Therefore, Lambdas are useful for providing pre-defined functions built using existing Nodes.
See Also:
  • Constructor Details

    • Lambda

      public Lambda(Node node)
      Constructs a new node for defining an immutable, anonymous function with no arguments.
      Parameters:
      node - the body of this function
      Throws:
      IllegalArgumentException - if node is incomplete or not strongly typed (i.e., node.isValid() returns false)
    • Lambda

      public Lambda(Node node, String variableName, Class<?> variableType)
      Constructs a new node for defining an immutable, anonymous function with one argument.
      Parameters:
      node - the body of this function
      variableName - the name of the argument
      variableType - the type of the argument
      Throws:
      IllegalArgumentException - if node is incomplete or not strongly typed (i.e., node.isValid() returns false)
    • Lambda

      public Lambda(Node node, String name1, Class<?> type1, String name2, Class<?> type2)
      Constructs a new node for defining an immutable, anonymous function with two arguments.
      Parameters:
      node - the body of this function
      name1 - the name of the first argument
      type1 - the type of the first argument
      name2 - the name of the second argument
      type2 - the type of the second argument
      Throws:
      IllegalArgumentException - if node is incomplete or not strongly typed (i.e., node.isValid() returns false)
    • Lambda

      public Lambda(Node node, String[] variableNames, Class<?>[] variableTypes)
      Constructs a new node for defining an immutable, anonymous function with a user-defined number of arguments.
      Parameters:
      node - the body of this function
      variableNames - the names of the arguments to this function
      variableTypes - the types of the arguments to this function
      Throws:
      IllegalArgumentException - if node is incomplete or not strongly typed (i.e., node.isValid() returns false)
  • Method Details

    • copyNode

      public Node copyNode()
      Description copied from class: Node
      Returns a copy of this node, but without any children or parents assigned.
      Specified by:
      copyNode in class Node
      Returns:
      a copy of this node, but without any children or parents assigned
    • evaluate

      public Object evaluate(Environment environment)
      Description copied from class: Node
      Evaluates this node in the context of the specified environment.
      Specified by:
      evaluate in class Node
      Parameters:
      environment - the execution environment
      Returns:
      the result of evaluating this node