| Index: source/i18n/significantdigitinterval.h
|
| diff --git a/source/i18n/significantdigitinterval.h b/source/i18n/significantdigitinterval.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a3d86f1c8fe2801d9385f6c50a0e05603bfb0dec
|
| --- /dev/null
|
| +++ b/source/i18n/significantdigitinterval.h
|
| @@ -0,0 +1,90 @@
|
| +/*
|
| +*******************************************************************************
|
| +* 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__
|
|
|