/** * @param Mapping $mapping * * @return $this */ public function addMapping(Mapping $mapping) { $oxidClass = $mapping->getOxidClass(); $oxidMethod = $mapping->getOxidMethod(); $moduleClass = $mapping->getModuleClass(); $moduleFile = $mapping->getModuleFile(); if (!isset($this->mappings[$oxidClass])) { $this->mappings[$oxidClass] = array(); } $needNewProxy = true; foreach ($this->mappings[$oxidClass] as $proxyClass => $classMethods) { if (!isset($classMethods[$oxidMethod])) { $this->setMapping($oxidClass, $proxyClass, $oxidMethod, $moduleFile, $moduleClass, $mapping); $needNewProxy = false; break; } } if ($needNewProxy) { $proxyClass = count($this->mappings[$oxidClass]) + 1; $this->setMapping($oxidClass, $proxyClass, $oxidMethod, $moduleFile, $moduleClass, $mapping); } return $this; }