/** * Aid to generating full aliases. Recursively gets and sets the parent alias, eventually creating, caching and returning * an alias for itself. * @return string */ public function FullAlias() { if ($this->strFullAlias) { return $this->strFullAlias; } else { assert(!empty($this->strAlias)); // Alias should always be set by default if ($this->objParentNode) { assert(is_object($this->objParentNode)); return $this->objParentNode->FullAlias() . '__' . $this->strAlias; } else { return $this->strAlias; } } }