public function prepareFor(ContentStreamAware $entity, $type, $locale, $revision = 'default', $save = TRUE) {
    try {
      $contentStream = 
         $entity->getContentStream()
           ->locale($locale)
           ->type($type)
           ->revision($revision)
           ->one()
       ;
     } catch (NoContentStreamsFoundException $e) {
       $contentStream = 
         $this->createEmptyEntity($revision)
           ->setLocale($locale)
           ->setRevision($revision)
           ->setType($type);

       $entity->addContentStream($contentStream);

       
       if ($save) {
         $this->repository->save($contentStream);
         $this->repository->persist($entity);
       }
     }

    return $contentStream;
  }