public function setAttributeValues($values)
    {
        foreach ($values as $key => $value) {
            // Does the attribute exist?
            if (!array_key_exists($key, $this->attributes)) {
                continue;
            }

            // Coerce to the right type if required
            $targetDataType = $this->attributes[$key];
            $this->attributeValues[$key] = DataType::coerce(
                $targetDataType,
                $value
            );
        }
    }