public function sanitizeData($entity, $property, $value, $validations = array())
    {
        if (is_string($property)) {
            $property = $this->_description->getProperty($property);
        }

        if (empty($validations)) {
            $validations = $this->getValidations($property);
        }

        $validations = (array) AnConfig::unbox($validations);

        foreach ($validations as $validation => $options) {

            if (is_numeric($validation)) {
                $validation = $options;
                $options = array();
            }

            $method = '_sanitize'.ucfirst($validation);

            if (!method_exists($this, $method)) {
                continue;
            }

            $config = new AnConfig(array(
                'property' => $property,
                'value' => $value,
                'options' => $options,
            ));

            $value = $this->$method($config);
        }

        return $value;
    }