public function __construct(ModuleUtils $modules, $sourcePathSpec = self::PSR_0, $applicationPath = ".")
{
$sourcePathSpec = strtolower($sourcePathSpec);
if (!array_key_exists($sourcePathSpec, $this->psrSpecs)) {
throw new InvalidArgumentException(sprintf("Invalid sourcePathSpec. Valid values are %s and %s", self::PSR_0, self::PSR_4));
}
$this->modules = $modules;
$this->moduleSourcePathSpec = $this->psrSpecs[$sourcePathSpec];
$this->applicationPath = $this->normalizePath($applicationPath);
$this->currentSpec = $sourcePathSpec;
}