| 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 |