public function createAggregateJail($instanceAggregate, $class)
 {
     if (!TypeUtil::isTraversable($instanceAggregate)) {
         throw InvalidArgumentException::invalidType($instanceAggregate, ['array', 'Traversable']);
     }
     if (!is_string($class)) {
         throw InvalidArgumentException::invalidType($class, 'string');
     }
     $proxyAggregate = [];
     foreach ($instanceAggregate as $instance) {
         $proxyAggregate[] = $this->createInstanceJail($instance, $class);
     }
     return $proxyAggregate;
 }
 public static function hierarchyMismatch(ReflectionClass $class, ReflectionClass $superClass)
 {
     return new static(sprintf('Cannot create proxy for "%1$s" as "%2$s" is not part of the inheritance hierarchy of "%1$s". ' . 'Valid supertypes are: "%3$s"', $class->getName(), $superClass->getName(), implode('", "', TypeUtil::getSuperTypeNames($class))));
 }