/**
  * @param EntityDescriptor|EntitiesDescriptor $entityDescriptor
  *
  * @return FixedEntityDescriptorStore
  *
  * @throws \InvalidArgumentException
  */
 public function add($entityDescriptor)
 {
     if ($entityDescriptor instanceof EntityDescriptor) {
         if (false == $entityDescriptor->getEntityID()) {
             throw new \InvalidArgumentException('EntityDescriptor must have entityId set');
         }
         $this->descriptors[$entityDescriptor->getEntityID()] = $entityDescriptor;
     } elseif ($entityDescriptor instanceof EntitiesDescriptor) {
         foreach ($entityDescriptor->getAllItems() as $item) {
             $this->add($item);
         }
     } else {
         throw new \InvalidArgumentException('Expected EntityDescriptor or EntitiesDescriptor');
     }
     return $this;
 }