protected function buildFullConfiguration()
{
$mergedConfiguration = array();
$applicableSuperTypes = $this->buildInheritanceChain();
foreach ($applicableSuperTypes as $key => $superType) {
$mergedConfiguration = Arrays::arrayMergeRecursiveOverrule($mergedConfiguration, $superType->getLocalConfiguration());
}
$this->fullConfiguration = Arrays::arrayMergeRecursiveOverrule($mergedConfiguration, $this->localConfiguration);
if (isset($this->fullConfiguration['childNodes']) && is_array($this->fullConfiguration['childNodes']) && $this->fullConfiguration['childNodes'] !== array()) {
$sorter = new PositionalArraySorter($this->fullConfiguration['childNodes']);
$this->fullConfiguration['childNodes'] = $sorter->toArray();
}
}