/**
  *
  * @param DefinitionInterface[] $eachDefinition
  * @return void
  */
 private function addEachDefinition($eachDefinition)
 {
     foreach (Collection::create($eachDefinition) as $definition) {
         $this->addDefinition($definition);
     }
 }
 /**
  * 
  * @param string[] $eachPathPart
  * @param bool $replace
  * @return UrlInterface
  */
 public function withEachPathPart($eachPathPart, $replace = true)
 {
     $copy = clone $this;
     if ($replace) {
         $this->pathPartArray = [];
     }
     foreach (Collection::create($eachPathPart) as $pathPart) {
         $copy->pathPartArray[] = $pathPart;
     }
     return $copy;
 }
 /**
  * 
  * @param string $name
  * @param EventHandlerInterface[] $eachEventHandler
  * @return void
  */
 public function addEachEventHandler($name, $eachEventHandler)
 {
     foreach (Collection::create($eachEventHandler) as $eventHandler) {
         $this->addEventHandler($name, $eventHandler);
     }
 }
 /**
  * 
  * @return CollectionInterface
  */
 public function getCollection()
 {
     return Collection::create($this->nameValueMap);
 }
 /**
  * 
  * @param SegmentInterface[] $eachSegment
  * @return void
  */
 public function addEachSegment($eachSegment)
 {
     foreach (Collection::create($eachSegment) as $segment) {
         $this->addSegment($segment);
     }
 }
 /**
  *
  * @param DefinitionInterface[] $eachDefinition
  * @return void
  */
 protected final function addEachDefinition($eachDefinition)
 {
     foreach (Collection::create($eachDefinition) as $definition) {
         $this->addDefinition($definition);
     }
 }
 /**
  * 
  * @param LoggerInterface[] $eachLogger
  */
 public function __construct($eachLogger)
 {
     $this->loggerArray = Collection::create($eachLogger)->getArray();
 }