/** * @param mixed $data * * @return Configuration */ protected function buildConfiguration($data) { $this->typeCheck->buildConfiguration(func_get_args()); $this->validateData($data); $configuration = new Configuration($data->{'output-path'}, $data->{'source-paths'}); if (property_exists($data, ConfigurationOption::LOADER_PATHS()->value())) { $configuration->setLoaderPaths($data->{'loader-paths'}); } if (property_exists($data, ConfigurationOption::VALIDATOR_NAMESPACE()->value())) { $configuration->setValidatorNamespace(ClassName::fromString($data->{'validator-namespace'})); } if (property_exists($data, ConfigurationOption::USE_NATIVE_CALLABLE()->value())) { $configuration->setUseNativeCallable($data->{'use-native-callable'}); } return $configuration; }