public function load($data, $type = null)
{
$routeCollection = new RouteCollection();
$this->loadExternalFiles($routeCollection);
foreach ($this->resourceNameCollectionFactory->create() as $resourceClass) {
$resourceMetadata = $this->resourceMetadataFactory->create($resourceClass);
$resourceShortName = $resourceMetadata->getShortName();
if (null === $resourceShortName) {
throw new InvalidResourceException(sprintf('Resource %s has no short name defined.', $resourceClass));
}
if (null !== ($collectionOperations = $resourceMetadata->getCollectionOperations())) {
foreach ($collectionOperations as $operationName => $operation) {
$this->addRoute($routeCollection, $resourceClass, $operationName, $operation, $resourceShortName, true);
}
}
if (null !== ($itemOperations = $resourceMetadata->getItemOperations())) {
foreach ($itemOperations as $operationName => $operation) {
$this->addRoute($routeCollection, $resourceClass, $operationName, $operation, $resourceShortName, false);
}
}
}
return $routeCollection;
}