| 44 | 
  | 
#include <sstream> | 
| 45 | 
  | 
#include "utils/CaseConversion.hpp" | 
| 46 | 
  | 
#include "utils/StringTokenizer.hpp" | 
| 47 | 
< | 
 | 
| 47 | 
> | 
namespace oopse { | 
| 48 | 
  | 
/** | 
| 49 | 
  | 
  * This class allows to recognize constraint predicates, so that they can be combined using | 
| 50 | 
  | 
  * composition operators. Every constraint predicate must be derived from this class | 
| 331 | 
  | 
} | 
| 332 | 
  | 
 | 
| 333 | 
  | 
 | 
| 334 | 
< | 
NotEmptyConstraint isNotEmpty() { | 
| 335 | 
< | 
    return NotEmptyConstraint(); | 
| 336 | 
< | 
} | 
| 337 | 
< | 
 | 
| 338 | 
< | 
ZeroConstraint isZero() { | 
| 339 | 
< | 
    return ZeroConstraint(); | 
| 340 | 
< | 
} | 
| 334 | 
> | 
NotEmptyConstraint isNotEmpty(); | 
| 335 | 
> | 
ZeroConstraint isZero(); | 
| 336 | 
  | 
 | 
| 337 | 
< | 
ParamConstraintFacade<NonZeroConstraint> isNonZero() { | 
| 338 | 
< | 
    return ParamConstraintFacade<NonZeroConstraint>(); | 
| 339 | 
< | 
} | 
| 337 | 
> | 
ParamConstraintFacade<NonZeroConstraint> isNonZero(); | 
| 338 | 
> | 
PositiveConstraint isPositive(); | 
| 339 | 
> | 
NonPositiveConstraint isNonPositive(); | 
| 340 | 
  | 
 | 
| 341 | 
< | 
PositiveConstraint isPositive() { | 
| 347 | 
< | 
    return PositiveConstraint(); | 
| 348 | 
< | 
} | 
| 349 | 
< | 
 | 
| 350 | 
< | 
NonPositiveConstraint isNonPositive() { | 
| 351 | 
< | 
    return NonPositiveConstraint(); | 
| 352 | 
< | 
} | 
| 341 | 
> | 
NegativeConstraint isNegative(); | 
| 342 | 
  | 
 | 
| 343 | 
< | 
NegativeConstraint isNegative() { | 
| 355 | 
< | 
    return NegativeConstraint(); | 
| 356 | 
< | 
} | 
| 343 | 
> | 
NonNegativeConstraint isNonNegative(); | 
| 344 | 
  | 
 | 
| 358 | 
– | 
NonNegativeConstraint isNonNegative() { | 
| 359 | 
– | 
    return NonNegativeConstraint(); | 
| 360 | 
– | 
} | 
| 361 | 
– | 
 | 
| 345 | 
  | 
template<typename T> | 
| 346 | 
< | 
LessThanConstraint<T>isLessThan(T& v ) { | 
| 346 | 
> | 
inline LessThanConstraint<T>isLessThan(T& v ) { | 
| 347 | 
  | 
    return LessThanConstraint<T>(v); | 
| 348 | 
  | 
} | 
| 349 | 
  | 
 | 
| 350 | 
  | 
template<typename T> | 
| 351 | 
< | 
LessThanOrEqualToConstraint<T> isLessThanOrEqualTo(T& v ) { | 
| 351 | 
> | 
inline LessThanOrEqualToConstraint<T> isLessThanOrEqualTo(T& v ) { | 
| 352 | 
  | 
    return ParamConstraintFacade<LessThanOrEqualToConstraint<T> >(v); | 
| 353 | 
  | 
} | 
| 354 | 
  | 
 | 
| 355 | 
  | 
template<typename T> | 
| 356 | 
< | 
EqualConstraint<T> isEqual(T& v ) { | 
| 356 | 
> | 
inline EqualConstraint<T> isEqual(T& v ) { | 
| 357 | 
  | 
    return EqualConstraint<T>(v); | 
| 358 | 
  | 
} | 
| 359 | 
  | 
 | 
| 360 | 
  | 
template<typename T> | 
| 361 | 
< | 
GreaterThanConstraint<T> isGreaterThan(T& v ) { | 
| 361 | 
> | 
inline GreaterThanConstraint<T> isGreaterThan(T& v ) { | 
| 362 | 
  | 
    return GreaterThanConstraint<T>(v); | 
| 363 | 
  | 
} | 
| 364 | 
  | 
 | 
| 365 | 
  | 
template<typename T> | 
| 366 | 
< | 
GreaterThanOrEqualTo<T> isGreaterThanOrEqualTo(T& v ) { | 
| 366 | 
> | 
inline GreaterThanOrEqualTo<T> isGreaterThanOrEqualTo(T& v ) { | 
| 367 | 
  | 
    return GreaterThanOrEqualTo<T>(v); | 
| 368 | 
  | 
} | 
| 369 | 
  | 
 | 
| 370 | 
< | 
EqualIgnoreCaseConstraint isEqualIgnoreCase(std::string str) { | 
| 388 | 
< | 
    return EqualIgnoreCaseConstraint(str); | 
| 370 | 
> | 
EqualIgnoreCaseConstraint isEqualIgnoreCase(std::string str); | 
| 371 | 
  | 
} | 
| 390 | 
– | 
 | 
| 372 | 
  | 
#endif |