limal
Public Member Functions | Private Attributes | List of all members
limal::ValueIntCheck Class Reference

Integer range value check. More...

#include <ValueIntCheck.hpp>

Inheritance diagram for limal::ValueIntCheck:
limal::ValueCheckBase

Public Member Functions

 ValueIntCheck (BLOCXX_NAMESPACE::UInt64 minValue, BLOCXX_NAMESPACE::UInt64 maxValue, bool inclusiveRange=true)
 
 ValueIntCheck (BLOCXX_NAMESPACE::Int64 minValue, BLOCXX_NAMESPACE::Int64 maxValue, bool inclusiveRange=true)
 
 ValueIntCheck (int minValue, int maxValue, bool inclusiveRange=true)
 
virtual bool isValid (const BLOCXX_NAMESPACE::String &value) const
 
virtual BLOCXX_NAMESPACE::String explain (const BLOCXX_NAMESPACE::String &value) const
 
- Public Member Functions inherited from limal::ValueCheckBase
virtual ~ValueCheckBase ()
 

Private Attributes

bool m_sign
 
bool m_incl
 
union {
   BLOCXX_NAMESPACE::Int64   s
 
   BLOCXX_NAMESPACE::UInt64   u
 
m_min
 
union {
   BLOCXX_NAMESPACE::Int64   s
 
   BLOCXX_NAMESPACE::UInt64   u
 
m_max
 

Additional Inherited Members

- Protected Member Functions inherited from limal::ValueCheckBase
 ValueCheckBase ()
 

Detailed Description

Integer range value check.

The ValueIntCheck implements a simple integer range check that can be used in ValueCheck.

Constructor & Destructor Documentation

limal::ValueIntCheck::ValueIntCheck ( BLOCXX_NAMESPACE::UInt64  minValue,
BLOCXX_NAMESPACE::UInt64  maxValue,
bool  inclusiveRange = true 
)

Constructor using a UInt64 range.

Parameters
minValueMinimal value for the range.
maxValueMaximal value for the range.
inclusiveRangeWhether to check if the value is less (inclusiveRange=false) if less or equal the maxValue.
limal::ValueIntCheck::ValueIntCheck ( BLOCXX_NAMESPACE::Int64  minValue,
BLOCXX_NAMESPACE::Int64  maxValue,
bool  inclusiveRange = true 
)

Constructor using a Int64 range.

Parameters
minValueMinimal value for the range.
maxValueMaximal value for the range.
inclusiveRangeWhether to check if the value is less (inclusiveRange=false) if less or equal the maxValue.
limal::ValueIntCheck::ValueIntCheck ( int  minValue,
int  maxValue,
bool  inclusiveRange = true 
)

Constructor using int range.

Note: This constructor will be used by default, if you simply call:

 ValueIntCheck(0, 42)

To avoid conversion problems on 64 bit integers, you should choose the right constructors:

 ValueIntCheck( Int64(0),  Int64(42))
 ValueIntCheck(UInt64(0), UInt64(42))

instead...

Parameters
minValueMinimal value for the range.
maxValueMaximal value for the range.
inclusiveRangeWhether to check if the value is less (inclusiveRange=false) if less or equal the maxValue.

Member Function Documentation

virtual BLOCXX_NAMESPACE::String limal::ValueIntCheck::explain ( const BLOCXX_NAMESPACE::String &  value) const
virtual

Return a string showing the integer range check.

Parameters
valueA string value.
Returns
A string showing the check.

Implements limal::ValueCheckBase.

virtual bool limal::ValueIntCheck::isValid ( const BLOCXX_NAMESPACE::String &  value) const
virtual

Return whether the specified value is fits into the integer range.

Parameters
valueA string value.
Returns
true, if the value fits into the range.
Exceptions
blocxx::StringConversionExceptionif the value can't be converted to a integer value.

Implements limal::ValueCheckBase.

Member Data Documentation

bool limal::ValueIntCheck::m_incl
private
union { ... } limal::ValueIntCheck::m_max
union { ... } limal::ValueIntCheck::m_min
bool limal::ValueIntCheck::m_sign
private
BLOCXX_NAMESPACE::Int64 limal::ValueIntCheck::s
BLOCXX_NAMESPACE::UInt64 limal::ValueIntCheck::u

The documentation for this class was generated from the following file: