#include <ValueCheck.hpp>

Public Member Functions | |
| ValueCheck () | |
| ValueCheck (ValueCheckBase *check) | |
| ValueCheck & | operator= (ValueCheckBase *check) |
| ValueCheck (const ValueCheck &ref) | |
| ValueCheck & | operator= (const ValueCheck &ref) |
| virtual | ~ValueCheck () |
| virtual bool | isValid (const BLOCXX_NAMESPACE::String &value) const |
| virtual BLOCXX_NAMESPACE::String | explain (const BLOCXX_NAMESPACE::String &value) const |
| ValueCheck & | And (const ValueCheck &ref) |
| ValueCheck & | And (ValueCheckBase *check) |
| ValueCheck & | Or (const ValueCheck &ref) |
| ValueCheck & | Or (ValueCheckBase *check) |
| ValueCheck & | Not () |
Private Types | |
| enum | ECheckOp { E_AND, E_OR } |
Private Member Functions | |
| ValueCheck (const ValueCheck &ref, ECheckOp op) | |
| void | incRCnt (ValueCheckBase *ptr) |
| void | delRCnt (ValueCheckBase *ptr) |
Private Attributes | |
| ECheckOp | m_cop |
| bool | m_neg |
| ValueCheckBase * | m_self |
| BLOCXX_NAMESPACE::List < ValueCheck > | m_list |
The ValueCheck class allows to construct a simple expression. It contains one or more single checks derived from ValueCheckBase or also sub-expressions, that are combined with And, Or and Not operators.
The check can be evaluated for a value using the isValid() method, showed as string with the explain() method and of course stored in a variable and used to check values multiple times.
// // Construct a check: // // (val =~ /^[-]?[0-9]{1,}$/) // And // ( // (val >= 0 And val <= 99) // Or // (val >= -5 Or val <= 5) // And // Not(val == 7) // ) // ValueCheck check = ValueCheck( new ValueRegExCheck("^[-]?[0-9]{1,}$") ).And( ValueCheck( new ValueIntCheck(Int64(0), Int64(99)) ).Or( new ValueIntCheck(Int64(-5), Int64(5)) ).And( ValueCheck( new ValueIntCheck(Int64(7), Int64(7)) ).Not() ) ); // Print out what the check does for value "42": std::cout << check.explain("42") << endl; // Evaluate the value "-3" and print out the result: std::cout << check.isValid("-3") << endl;
enum limal::ValueCheck::ECheckOp [private] |
| limal::ValueCheck::ValueCheck | ( | ) |
Default constructor. Since it does not contain any check, the isValid() and and explain() will throw an error until a check is assigned using the operator=().
| limal::ValueCheck::ValueCheck | ( | ValueCheckBase * | check | ) |
Single check assignment constructor.
| check | Pointer to a single check. |
| limal::ValueCheck::ValueCheck | ( | const ValueCheck & | ref | ) |
Check expression copy constructor.
| ref | Reference to a check expression. |
| virtual limal::ValueCheck::~ValueCheck | ( | ) | [virtual] |
Destructor.
| limal::ValueCheck::ValueCheck | ( | const ValueCheck & | ref, | |
| ECheckOp | op | |||
| ) | [private] |
Private constructor used to add the value check reference to the current expression list.
| ref | Reference to a value check. | |
| op | Relation to the current or last expression in the list. |
| ValueCheck& limal::ValueCheck::operator= | ( | ValueCheckBase * | check | ) |
Single check assignment operator.
| check | Pointer to a single check. |
| ValueCheck& limal::ValueCheck::operator= | ( | const ValueCheck & | ref | ) |
Check expression assignment operator.
| ref | Reference to a check expression. |
| virtual bool limal::ValueCheck::isValid | ( | const BLOCXX_NAMESPACE::String & | value | ) | const [virtual] |
Evaluates a the specified string value parameter to a boolean using the single checks and sub-expressions it contains.
| value | The string value to evaluate. |
Implements limal::ValueCheckBase.
| virtual BLOCXX_NAMESPACE ::String limal::ValueCheck::explain | ( | const BLOCXX_NAMESPACE::String & | value | ) | const [virtual] |
Returns a string explaining / showing the checks that will be done for the specified string value parameter.
| value | A string value. |
Implements limal::ValueCheckBase.
| ValueCheck& limal::ValueCheck::And | ( | const ValueCheck & | ref | ) |
Append a sub-expression to the list of checks using the E_OR relationship operator.
| ref | Reference to the sub-expression. |
| ValueCheck& limal::ValueCheck::And | ( | ValueCheckBase * | check | ) |
Append a single check to the list of checks using the E_AND relationship operator.
| check | Pointer to a single value check. |
| ValueCheck& limal::ValueCheck::Or | ( | const ValueCheck & | ref | ) |
Append a sub-expression to the list of checks using the E_OR relationship operator.
| ref | Reference to the sub-expression. |
| ValueCheck& limal::ValueCheck::Or | ( | ValueCheckBase * | check | ) |
Append a single check to the list of checks using the E_OR relationship operator.
| check | Pointer to a single value check. |
| ValueCheck& limal::ValueCheck::Not | ( | ) |
Negate the result of the current expression.
ValueCheck(...).Not().And(...)
ValueCheck(...).And(...).Not()
| void limal::ValueCheck::incRCnt | ( | ValueCheckBase * | ptr | ) | [private] |
Increment the reference counter of the check.
| ptr | Pointer to a value check. |
| void limal::ValueCheck::delRCnt | ( | ValueCheckBase * | ptr | ) | [private] |
Decrement the reference counter of the check and delete the object if needed.
| ptr | Pointer to a value check. |
ECheckOp limal::ValueCheck::m_cop [private] |
Check relationship operator to the parent check.
bool limal::ValueCheck::m_neg [private] |
Whether to negate the result of the current chain.
ValueCheckBase* limal::ValueCheck::m_self [private] |
Pointer to the current (reference counted) check.
BLOCXX_NAMESPACE ::List<ValueCheck> limal::ValueCheck::m_list [private] |
List of further checks in the chain.
1.5.5