private function parseRamlData($ramlData, $rootDir)
{
if (!isset($ramlData['title'])) {
throw new RamlParserException();
}
$ramlData = $this->parseTraits($ramlData);
$ramlData = $this->parseResourceTypes($ramlData);
if ($this->configuration->isSchemaParsingEnabled()) {
if (isset($ramlData['schemas'])) {
$schemas = [];
foreach ($ramlData['schemas'] as $schemaCollection) {
foreach ($schemaCollection as $schemaName => $schema) {
$schemas[$schemaName] = $schema;
}
}
}
foreach ($ramlData as $key => $value) {
if (0 === strpos($key, '/')) {
if (isset($schemas)) {
$value = $this->replaceSchemas($value, $schemas);
}
if (is_array($value)) {
$value = $this->recurseAndParseSchemas($value, $rootDir);
}
$ramlData[$key] = $value;
}
}
}
if (isset($ramlData['securitySchemes'])) {
$ramlData['securitySchemes'] = $this->parseSecuritySettings($ramlData['securitySchemes']);
}
return ApiDefinition::createFromArray($ramlData['title'], $ramlData);
}