QxOrm 1.4.9
C++ Object Relational Mapping library
Loading...
Searching...
No Matches
IxValidatorX.h
Go to the documentation of this file.
1/****************************************************************************
2**
3** https://www.qxorm.com/
4** Copyright (C) 2013 Lionel Marty (contact@qxorm.com)
5**
6** This file is part of the QxOrm library
7**
8** This software is provided 'as-is', without any express or implied
9** warranty. In no event will the authors be held liable for any
10** damages arising from the use of this software
11**
12** Commercial Usage
13** Licensees holding valid commercial QxOrm licenses may use this file in
14** accordance with the commercial license agreement provided with the
15** Software or, alternatively, in accordance with the terms contained in
16** a written agreement between you and Lionel Marty
17**
18** GNU General Public License Usage
19** Alternatively, this file may be used under the terms of the GNU
20** General Public License version 3.0 as published by the Free Software
21** Foundation and appearing in the file 'license.gpl3.txt' included in the
22** packaging of this file. Please review the following information to
23** ensure the GNU General Public License version 3.0 requirements will be
24** met : http://www.gnu.org/copyleft/gpl.html
25**
26** If you are unsure which license is appropriate for your use, or
27** if you have questions regarding the use of this file, please contact :
28** contact@qxorm.com
29**
30****************************************************************************/
31
32#ifndef _IX_VALIDATOR_X_H_
33#define _IX_VALIDATOR_X_H_
34
35#ifdef _MSC_VER
36#pragma once
37#endif
38
47
49
50namespace qx {
51
52class IxClass;
53class IxDataMember;
54class QxInvalidValueX;
55
64{
65
66 friend class IxClass;
67
68protected:
69
70 typedef QList<IxValidator_ptr> type_lst_validator;
71 typedef std::shared_ptr<type_lst_validator> type_lst_validator_ptr;
73
76
77public:
78
80 virtual ~IxValidatorX() = 0;
81
82 QxInvalidValueX validate(void * pOwner, const QString & sGroup = QString()) const;
83
84 IxValidator * add_NotNull(const QString & sPropertyKey, const QString & sMessage = QString(), const QString & sGroup = QString());
85 IxValidator * add_NotEmpty(const QString & sPropertyKey, const QString & sMessage = QString(), const QString & sGroup = QString());
86 IxValidator * add_MinValue(const QString & sPropertyKey, long lMinValue, const QString & sMessage = QString(), const QString & sGroup = QString());
87 IxValidator * add_MaxValue(const QString & sPropertyKey, long lMaxValue, const QString & sMessage = QString(), const QString & sGroup = QString());
88 IxValidator * add_Range(const QString & sPropertyKey, long lMinValue, long lMaxValue, const QString & sMessage = QString(), const QString & sGroup = QString());
89 IxValidator * add_MinDecimal(const QString & sPropertyKey, double dMinValue, const QString & sMessage = QString(), const QString & sGroup = QString());
90 IxValidator * add_MaxDecimal(const QString & sPropertyKey, double dMaxValue, const QString & sMessage = QString(), const QString & sGroup = QString());
91 IxValidator * add_RangeDecimal(const QString & sPropertyKey, double dMinValue, double dMaxValue, const QString & sMessage = QString(), const QString & sGroup = QString());
92 IxValidator * add_MinLength(const QString & sPropertyKey, long lMinLength, const QString & sMessage = QString(), const QString & sGroup = QString());
93 IxValidator * add_MaxLength(const QString & sPropertyKey, long lMaxLength, const QString & sMessage = QString(), const QString & sGroup = QString());
94 IxValidator * add_Size(const QString & sPropertyKey, long lMinLength, long lMaxLength, const QString & sMessage = QString(), const QString & sGroup = QString());
95 IxValidator * add_DatePast(const QString & sPropertyKey, const QString & sMessage = QString(), const QString & sGroup = QString());
96 IxValidator * add_DateFuture(const QString & sPropertyKey, const QString & sMessage = QString(), const QString & sGroup = QString());
97 IxValidator * add_RegExp(const QString & sPropertyKey, const QString & sPattern, const QString & sMessage = QString(), const QString & sGroup = QString());
98 IxValidator * add_EMail(const QString & sPropertyKey, const QString & sMessage = QString(), const QString & sGroup = QString());
99
100 QStringList getAllGroup() const;
101 QList<IxValidator_ptr> getAllValidatorByGroup(const QString & group) const;
102
103protected:
104
105 void setClass(IxClass * p);
106 void insertIntoGroup(IxValidator_ptr pValidator, const QString & sGroup);
107 IxValidator_ptr createValidator(IxValidator::validator_type type, const QString & sPropertyKey, const QString & sMessage, const QString & sGroup);
108 IxDataMember * getDataMember(const QString & sPropertyKey) const;
109
110};
111
112typedef std::shared_ptr<IxValidatorX> IxValidatorX_ptr;
113
114} // namespace qx
115
116#endif // _IX_VALIDATOR_X_H_
Common interface for validator engine.
QxOrm thread-safe container (keep insertion order + quick access by index + quick access by key)
#define QX_DLL_EXPORT
Definition QxMacro.h:182
qx::IxClass : common interface for all classes registered into QxOrm context
Definition IxClass.h:69
qx::IxDataMember : common interface for all class properties registered into QxOrm context
qx::IxValidator : common interface for validator engine
Definition IxValidator.h:61
qx::IxValidatorX : common interface for a list of validators
IxValidator * add_DateFuture(const QString &sPropertyKey, const QString &sMessage=QString(), const QString &sGroup=QString())
IxValidator * add_MinDecimal(const QString &sPropertyKey, double dMinValue, const QString &sMessage=QString(), const QString &sGroup=QString())
IxValidator * add_MinLength(const QString &sPropertyKey, long lMinLength, const QString &sMessage=QString(), const QString &sGroup=QString())
void setClass(IxClass *p)
IxValidator * add_MaxLength(const QString &sPropertyKey, long lMaxLength, const QString &sMessage=QString(), const QString &sGroup=QString())
QList< IxValidator_ptr > getAllValidatorByGroup(const QString &group) const
type_lst_validator_ptr_by_group m_lstValidatorByGroup
List of validator by group.
void insertIntoGroup(IxValidator_ptr pValidator, const QString &sGroup)
IxValidator * add_MaxValue(const QString &sPropertyKey, long lMaxValue, const QString &sMessage=QString(), const QString &sGroup=QString())
IxValidator * add_MaxDecimal(const QString &sPropertyKey, double dMaxValue, const QString &sMessage=QString(), const QString &sGroup=QString())
QList< IxValidator_ptr > type_lst_validator
IxValidator * add_Size(const QString &sPropertyKey, long lMinLength, long lMaxLength, const QString &sMessage=QString(), const QString &sGroup=QString())
IxValidator * add_NotEmpty(const QString &sPropertyKey, const QString &sMessage=QString(), const QString &sGroup=QString())
IxValidator * add_MinValue(const QString &sPropertyKey, long lMinValue, const QString &sMessage=QString(), const QString &sGroup=QString())
QStringList getAllGroup() const
std::shared_ptr< type_lst_validator > type_lst_validator_ptr
QxInvalidValueX validate(void *pOwner, const QString &sGroup=QString()) const
IxDataMember * getDataMember(const QString &sPropertyKey) const
IxValidator * add_EMail(const QString &sPropertyKey, const QString &sMessage=QString(), const QString &sGroup=QString())
QxCollection< QString, type_lst_validator_ptr > type_lst_validator_ptr_by_group
IxValidator * add_RegExp(const QString &sPropertyKey, const QString &sPattern, const QString &sMessage=QString(), const QString &sGroup=QString())
IxValidator * add_NotNull(const QString &sPropertyKey, const QString &sMessage=QString(), const QString &sGroup=QString())
IxClass * m_pClass
Class registered into QxOrm context.
virtual ~IxValidatorX()=0
IxValidator_ptr createValidator(IxValidator::validator_type type, const QString &sPropertyKey, const QString &sMessage, const QString &sGroup)
IxValidator * add_DatePast(const QString &sPropertyKey, const QString &sMessage=QString(), const QString &sGroup=QString())
IxValidator * add_RangeDecimal(const QString &sPropertyKey, double dMinValue, double dMaxValue, const QString &sMessage=QString(), const QString &sGroup=QString())
IxValidator * add_Range(const QString &sPropertyKey, long lMinValue, long lMaxValue, const QString &sMessage=QString(), const QString &sGroup=QString())
qx::QxCollection<Key, Value> : QxOrm thread-safe container (keep insertion order + quick access by in...
qx::QxInvalidValueX : list of invalid values
Root namespace for all QxOrm library features.
std::shared_ptr< IxValidator > IxValidator_ptr
std::shared_ptr< IxValidatorX > IxValidatorX_ptr