public function setShape($shape)
    {
        if (in_array($shape, QtiShape::asArray()) === true) {
            $this->shape = $shape;
        } else {
            $msg = "The 'shape' argument must be a value from the Shape enumeration, '" . $shape . "' given.";
            throw new InvalidArgumentException($msg);
        }
    }