public function setPrice($price)
    {
        NumericValidator::validate($price, "Price");
        $price = Formatter::formatToPrice($price, $this->getCurrency());
        $this->price = $price;
        return $this;
    }