/**
  * @param ClassFinderAdapter $adapter
  * @param array $prefixes
  */
 protected function addMultipleWithTargetDir($adapter, array $prefixes)
 {
     $default_behavior = new DefaultDirectoryBehavior();
     $psr0_behavior = new Psr0DirectoryBehavior();
     $namespace_map = array();
     $prefix_map = array();
     $target_dir_strlen = strlen($this->targetDir);
     foreach ($prefixes as $prefix => $paths) {
         if (FALSE === strpos($prefix, '\\')) {
             $logical_base_path = Util::prefixLogicalPath($prefix);
             foreach ((array) $paths as $root_path) {
                 $deep_path = strlen($root_path) ? rtrim($root_path, '/') . '/' . $logical_base_path : $logical_base_path;
                 if (0 !== strpos($deep_path, $this->targetDir)) {
                     continue;
                 }
                 $deep_path = $this->pathPrefix . substr($deep_path, $target_dir_strlen);
                 $prefix_map[$logical_base_path][$deep_path] = $default_behavior;
             }
         }
         $logical_base_path = Util::namespaceLogicalPath($prefix);
         foreach ((array) $paths as $root_path) {
             $deep_path = strlen($root_path) ? rtrim($root_path, '/') . '/' . $logical_base_path : $logical_base_path;
             if (0 !== strpos($deep_path, $this->targetDir)) {
                 continue;
             }
             $deep_path = $this->pathPrefix . substr($deep_path, $target_dir_strlen);
             $namespace_map[$logical_base_path][$deep_path] = $psr0_behavior;
         }
     }
     if (!empty($prefix_map)) {
         $adapter->getPrefixMap()->registerDeepPaths($prefix_map);
     }
     $adapter->getNamespaceMap()->registerDeepPaths($namespace_map);
 }