5#ifndef CUTELYSTVALIDATORRULE_H
6#define CUTELYSTVALIDATORRULE_H
8#include <Cutelyst/cutelyst_global.h>
9#include <Cutelyst/paramsmultimap.h>
11#include <QLoggingCategory>
12#include <QScopedPointer>
15Q_DECLARE_LOGGING_CATEGORY(C_VALIDATOR)
67 explicit operator bool() const noexcept {
return errorMessage.isNull(); }
74 [[nodiscard]]
bool isValid() const noexcept {
return errorMessage.isNull(); }
157 const char *customValidationError =
nullptr,
158 const char *customParsingError =
nullptr,
159 const char *customValidationDataError =
nullptr)
161 , validationError(customValidationError)
162 , parsingError(customParsingError)
163 , validationDataError(customValidationDataError)
166 const char *label =
nullptr;
167 const char *validationError =
nullptr;
168 const char *parsingError =
nullptr;
169 const char *validationDataError =
nullptr;
172class ValidatorRulePrivate;
313 const QString &defValKey = QString(),
314 QByteArrayView validatorName =
nullptr);
324 const std::unique_ptr<ValidatorRulePrivate> d_ptr;
381 [[nodiscard]] QString field() const noexcept;
388 [[nodiscard]] QString label(
Context *c) const;
401 [[nodiscard]]
bool trimBefore() const noexcept;
417 [[nodiscard]] QString validationError(
Context *c, const QVariant &errorData = QVariant()) const;
449 virtual QString genericValidationError(
Context *c,
450 const QVariant &errorData = QVariant()) const;
466 [[nodiscard]] QString parsingError(
Context *c, const QVariant &errorData = QVariant()) const;
498 virtual QString genericParsingError(
Context *c, const QVariant &errorData = QVariant()) const;
514 [[nodiscard]] QString validationDataError(
Context *c,
515 const QVariant &errorData = QVariant()) const;
547 virtual QString genericValidationDataError(
Context *c,
548 const QVariant &errorData = QVariant()) const;
564 [[nodiscard]] QString debugString(
Context *c) const;
575 void setTranslationContext(QLatin1String trContext) noexcept;
587 void setTrimBefore(
bool trimBefore) noexcept;
590 friend class ValidatorPrivate;
Base class for all validator rules.
virtual ~ValidatorRule()
Deconstructs the ValidatorRule.
virtual ValidatorReturnType validate(Context *c, const ParamsMultiMap ¶ms) const =0
Starts the validation and returns the result.
Validation processor for input data.
The Cutelyst namespace holds all public Cutelyst API.
QMultiMap< QString, QString > ParamsMultiMap
Stores custom error messages and the input field label.
ValidatorMessages(const char *customLabel, const char *customValidationError=nullptr, const char *customParsingError=nullptr, const char *customValidationDataError=nullptr)
Constructs a new ValidatorMessages object with the given parameters.
ValidatorMessages()=default
Constructs a default ValidatorMessages object with all custom messages disabled.
Contains the result of a single input parameter validation.
bool isValid() const noexcept
Returns true if validation succeeded.