protected function addAssociation(Association $association, Entity $subject, Entity $target, $target_property = null, $inversed_by = null, $is_owning_association = null)
 {
     $association->setSourceEntity($subject);
     $association->setTargetEntity($target);
     $association->setTargetPropertyName($target_property);
     $association->setInversedByPropertyName($inversed_by);
     if ($is_owning_association === true) {
         $association->setIsOwningAssociation(true);
     } else {
         if ($is_owning_association === false) {
             $association->setIsOwnedByAssociation(true);
         }
     }
     $subject->getAssociations()->add($association);
 }