getValue method

  1. @override
bool getValue(
  1. DartBlockArbiter arbiter
)
override

Implementation

@override
bool getValue(DartBlockArbiter arbiter) {
  if (operator != null) {
    switch (operator!) {
      case DartBlockEqualityOperator.equal:
        if (leftChild == null && rightChild == null) {
          return true;
        } else if (leftChild == null && rightChild != null) {
          return false;
        } else if (leftChild != null && rightChild == null) {
          return false;
        } else {
          DartBlockValueTreeBooleanGenericNode? leftGeneric;
          DartBlockValueTreeBooleanGenericNode? rightGeneric;
          if (leftChild! is DartBlockValueTreeBooleanGenericNode) {
            leftGeneric = leftChild as DartBlockValueTreeBooleanGenericNode;
          }
          if (rightChild! is DartBlockValueTreeBooleanGenericNode) {
            rightGeneric = rightChild as DartBlockValueTreeBooleanGenericNode;
          }
          return (leftGeneric?.value.getValue(arbiter) ??
                  leftChild?.getValue(arbiter)) ==
              (rightGeneric?.value.getValue(arbiter) ??
                  rightChild?.getValue(arbiter));
        }
      case DartBlockEqualityOperator.notEqual:
        if (leftChild == null && rightChild == null) {
          return false;
        } else if (leftChild == null && rightChild != null) {
          return true;
        } else if (leftChild != null && rightChild == null) {
          return true;
        } else {
          DartBlockValueTreeBooleanGenericNode? leftGeneric;
          DartBlockValueTreeBooleanGenericNode? rightGeneric;
          if (leftChild! is DartBlockValueTreeBooleanGenericNode) {
            leftGeneric = leftChild as DartBlockValueTreeBooleanGenericNode;
          }
          if (rightChild! is DartBlockValueTreeBooleanGenericNode) {
            rightGeneric = rightChild as DartBlockValueTreeBooleanGenericNode;
          }
          return (leftGeneric?.value.getValue(arbiter) ??
                  leftChild?.getValue(arbiter)) !=
              (rightGeneric?.value.getValue(arbiter) ??
                  rightChild?.getValue(arbiter));
        }
      // return leftChild?.getValue(arbiter) != rightChild?.getValue(arbiter);
    }
  } else {
    throw MalformedBooleanEqualityExpressionException(
      null,
      null,
      null,
      "Missing operator (==, !=). ('${toString()}')",
    );
  }
}