protected function AggregateVariableArray(QcodoClass $objClass, $blnIsRootChild) { $objVariables = $objClass->GetClassVariableArray(QQ::Clause(QQ::Expand(QQN::ClassVariable()->Variable))); foreach ($objVariables as $objVariable) { if ($blnIsRootChild) { $objVariable->InheritenceState = InheritenceState::RootChild; $this->objVariableArray[$objVariable->Variable->Name] = $objVariable; } else { if (array_key_exists($objVariable->Variable->Name, $this->objVariableArray)) { // The Variable already exists, younger in the array if ($this->objVariableArray[$objVariable->Variable->Name]->InheritenceState == InheritenceState::RootChild) { // This means the Variable in the array overrides $this->objVariableArray[$objVariable->Variable->Name]->InheritenceState = InheritenceState::Overrides; $this->objVariableArray[$objVariable->Variable->Name]->OverridesVariable = $objVariable; } } else { // The Variable doesn't yet exist in the array // So therefore, this class inherits the Variable $objVariable->InheritenceState = InheritenceState::Interited; $this->objVariableArray[$objVariable->Variable->Name] = $objVariable; } } } if ($objClass->ParentQcodoClassId) { $this->AggregateVariableArray($objClass->ParentQcodoClass, false); } }