Interface PhysicalOpFactory

  • Method Details

    • supports

      boolean supports(LogicalOperator lop, ExpectedVariables... inputVars)
      Returns true if this factory can create a physical operator for the given logical operator and expected input variables.
      Parameters:
      lop - the logical operator to check
      inputVars - expected input variables
      Returns:
      true if this factory can handle the inputs; false otherwise
    • create

      default NullaryPhysicalOp create(NullaryLogicalOp lop)
      Creates a physical operator for the given logical operator.

      Precondition: call only if

      invalid @link
      {@link #supports(...)
      } has returned true for the same logical operator and input variables.
      Parameters:
      lop - the logical operator
      Returns:
      a physical operator
      Throws:
      IllegalArgumentException - if the precondition was violated
    • create

      default UnaryPhysicalOp create(UnaryLogicalOp lop)
      Creates a physical operator for the given logical operator.

      Precondition: call only if

      invalid @link
      {@link #supports(...)
      } has returned true for the same logical operator and input variables.
      Parameters:
      lop - the logical operator
      Returns:
      a physical operator
      Throws:
      IllegalArgumentException - if the precondition was violated
    • create

      default BinaryPhysicalOp create(BinaryLogicalOp lop)
      Creates a physical operator for the given logical operator.

      Precondition: call only if

      invalid @link
      {@link #supports(...)
      } has returned true for the same logical operator and input variables.
      Parameters:
      lop - the logical operator
      Returns:
      a physical operator
      Throws:
      IllegalArgumentException - if the precondition was violated
    • create

      default NaryPhysicalOp create(NaryLogicalOp lop)
      Creates a physical operator for the given logical operator.

      Precondition: call only if

      invalid @link
      {@link #supports(...)
      } has returned true for the same logical operator and input variables.
      Parameters:
      lop - the logical operator
      Returns:
      a physical operator
      Throws:
      IllegalArgumentException - if the precondition was violated