/**
  * @param AdapterFactoryInterface $adapterFactory
  * @param DefinitionInterface     $definition
  * @param LoggerInterface|null    $logger
  */
 function __construct(AdapterFactoryInterface $adapterFactory, DefinitionInterface $definition, LoggerInterface $logger = null)
 {
     $this->adapterFactory = $adapterFactory;
     $this->definition = $definition;
     $this->logger = $logger == null ? new NullLogger() : $logger;
     $properties = $definition->getProperties() == null ? array() : $definition->getProperties();
     $adapter = $this->adapterFactory->create($definition->getType(), $definition->getPath(), $properties);
     parent::__construct($adapter);
 }