| /* |
| ******************************************************************************* |
| * Copyright (C) 2015, International Business Machines |
| * Corporation and others. All Rights Reserved. |
| ******************************************************************************* |
| * significantdigitinterval.h |
| * |
| * created on: 2015jan6 |
| * created by: Travis Keep |
| */ |
| |
| #ifndef __SIGNIFICANTDIGITINTERVAL_H__ |
| #define __SIGNIFICANTDIGITINTERVAL_H__ |
| |
| #include "unicode/uobject.h" |
| #include "unicode/utypes.h" |
| |
| U_NAMESPACE_BEGIN |
| |
| /** |
| * An interval of allowed significant digit counts. |
| */ |
| class U_I18N_API SignificantDigitInterval : public UMemory { |
| public: |
| |
| /** |
| * No limits on significant digits. |
| */ |
| SignificantDigitInterval() |
| : fMax(INT32_MAX), fMin(0) { } |
| |
| /** |
| * Make this instance have no limit on significant digits. |
| */ |
| void clear() { |
| fMin = 0; |
| fMax = INT32_MAX; |
| } |
| |
| /** |
| * Returns TRUE if this object is equal to rhs. |
| */ |
| UBool equals(const SignificantDigitInterval &rhs) const { |
| return ((fMax == rhs.fMax) && (fMin == rhs.fMin)); |
| } |
| |
| /** |
| * Sets maximum significant digits. 0 or negative means no maximum. |
| */ |
| void setMax(int32_t count) { |
| fMax = count <= 0 ? INT32_MAX : count; |
| } |
| |
| /** |
| * Get maximum significant digits. INT32_MAX means no maximum. |
| */ |
| int32_t getMax() const { |
| return fMax; |
| } |
| |
| /** |
| * Sets minimum significant digits. 0 or negative means no minimum. |
| */ |
| void setMin(int32_t count) { |
| fMin = count <= 0 ? 0 : count; |
| } |
| |
| /** |
| * Get maximum significant digits. 0 means no minimum. |
| */ |
| int32_t getMin() const { |
| return fMin; |
| } |
| |
| /** |
| * Returns TRUE if this instance represents no constraints on significant |
| * digits. |
| */ |
| UBool isNoConstraints() const { |
| return fMin == 0 && fMax == INT32_MAX; |
| } |
| |
| private: |
| int32_t fMax; |
| int32_t fMin; |
| }; |
| |
| U_NAMESPACE_END |
| |
| #endif // __SIGNIFICANTDIGITINTERVAL_H__ |