public function __construct($productVariation = null, $quantity = 1)
 {
     // Case 1 : Constructed by the static function get of DataObject
     if (is_array($productVariation)) {
         $this->ProductVariationID = $this->_productVariationID = $productVariation['ProductVariationID'];
         $this->ProductVariationVersion = $this->_productVariationVersion = $productVariation['ProductVariationVersion'];
         parent::__construct($productVariation, $quantity);
     } else {
         if (is_object($productVariation)) {
             parent::__construct($productVariation->Product(), $quantity);
             $this->_productVariationID = $productVariation->ID;
             $this->_productVariationVersion = $productVariation->Version;
         } else {
             parent::__construct();
         }
     }
 }