public function validate(array $data, Garp_Model_Db $model, $onlyIfAvailable = true) {
        $theFields = $this->_fields;
        $applicableFields = array_keys(array_get_subset($data, array_keys($theFields)));

        $tooShortFields = array_filter(
            $applicableFields,
            function ($field) use ($theFields, $data) {
                return !is_null($data[$field]) && strlen($data[$field]) < $theFields[$field];
            }
        );

        if (count($tooShortFields)) {
            $first = current($tooShortFields);
            throw new Garp_Model_Validator_Exception(
                Garp_Util_String::interpolate(
                    __(self::ERROR_MESSAGE),
                    array(
                        'value' => $first,
                        'min' => $theFields[$first]
                    )
                )
            );
        }
    }