limal::ValueIntCheck Class Reference

Integer range value check. More...

#include <ValueIntCheck.hpp>

Inheritance diagram for limal::ValueIntCheck:

limal::ValueCheckBase

List of all members.

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

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


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:
minValue Minimal value for the range.
maxValue Maximal value for the range.
inclusiveRange Whether 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:
minValue Minimal value for the range.
maxValue Maximal value for the range.
inclusiveRange Whether 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:
minValue Minimal value for the range.
maxValue Maximal value for the range.
inclusiveRange Whether to check if the value is less (inclusiveRange=false) if less or equal the maxValue.


Member Function Documentation

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

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

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

Implements limal::ValueCheckBase.

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

Return a string showing the integer range check.

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

Implements limal::ValueCheckBase.


Member Data Documentation

BLOCXX_NAMESPACE ::Int64 limal::ValueIntCheck::s

BLOCXX_NAMESPACE ::UInt64 limal::ValueIntCheck::u

union { ... } limal::ValueIntCheck::m_min [private]

BLOCXX_NAMESPACE ::Int64 limal::ValueIntCheck::s

BLOCXX_NAMESPACE ::UInt64 limal::ValueIntCheck::u

union { ... } limal::ValueIntCheck::m_max [private]


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

Generated on Sat Jun 7 10:55:30 2008 for limal by  doxygen 1.5.5