/** * (non-PHPdoc) * * @see library/POData/QueryProcessor/Expressions/Expressions.AbstractExpression::free() * * @return void */ public function free() { if (!is_null($this->parent)) { $this->parent->free(); unset($this->parent); } if (!is_null($this->child)) { $this->child->free(); unset($this->child); } }
/** * Process an property access expression node for nullability * * @param PropertyAccessExpression $expression The property access * expression node to process. * @param AbstractExpression $parentExpression The parent expression of * expression node to process. * @param boolean $checkNullForMostChild Wheter to check null for * most child node or not. * * @return LogicalExpression|RelationalExpression|null */ private function _processPropertyAccessNode(PropertyAccessExpression $expression, $parentExpression, $checkNullForMostChild) { $navigationsUsed = $expression->getNavigationPropertiesInThePath(); if (!empty($navigationsUsed)) { $this->_navigationPropertiesUsedInTheExpression[] = $navigationsUsed; } $nullableExpTree = $expression->createNullableExpressionTree($checkNullForMostChild); if ($parentExpression == null) { return new LogicalExpression($nullableExpTree, $expression, ExpressionType::AND_LOGICAL); } return $nullableExpTree; }