Main Page   Class Hierarchy   Compound List   File List   Header Files   Sources   Compound Members   File Members  

numfmt.h

This is the verbatim text of the numfmt.h include file.
/*
* Copyright © {1997-1999}, International Business Machines Corporation and others. All Rights Reserved.
********************************************************************************
*
* File NUMFMT.H
*
* Modification History:
*
*   Date        Name        Description
*   02/19/97    aliu        Converted from java.
*   03/18/97    clhuang     Updated per C++ implementation.
*   04/17/97    aliu        Changed DigitCount to int per code review.
*    07/20/98    stephen        JDK 1.2 sync up. Added scientific support.
*                            Changed naming conventions to match C++ guidelines
*                            Derecated Java style constants (eg, INTEGER_FIELD)
********************************************************************************
*/
 
#ifndef NUMFMT_H
#define NUMFMT_H
 

#include "unicode/utypes.h"
#include "unicode/unistr.h"
#include "unicode/format.h"

class Locale;

class U_I18N_API NumberFormat : public Format {
public:

    enum EAlignmentFields {
        kIntegerField,
        kFractionField,


        INTEGER_FIELD        = kIntegerField,
        FRACTION_FIELD        = kFractionField
    };

    virtual ~NumberFormat();

    virtual UBool operator==(const Format& other) const;

    virtual UnicodeString& format(const Formattable& obj,
                                  UnicodeString& toAppendTo,
                                  FieldPosition& pos,
                                  UErrorCode& status) const;

    virtual void parseObject(const UnicodeString& source,
                             Formattable& result,
                             ParsePosition& parse_pos) const;

    UnicodeString& format(  double number,
                            UnicodeString& output) const;

    UnicodeString& format(  int32_t number,
                            UnicodeString& output) const;

    virtual UnicodeString& format(double number,
                                  UnicodeString& toAppendTo,
                                  FieldPosition& pos) const = 0;
    virtual UnicodeString& format(int32_t number,
                                  UnicodeString& toAppendTo,
                                  FieldPosition& pos) const = 0;

    UnicodeString& format(const Formattable& obj,
                          UnicodeString& result,
                          UErrorCode& status) const;

    virtual void parse(const UnicodeString& text,
                       Formattable& result,
                       ParsePosition& parsePosition) const = 0;

    virtual void parse( const UnicodeString& text,
                        Formattable& result,
                        UErrorCode& status) const;

    UBool isParseIntegerOnly(void) const;

    virtual void setParseIntegerOnly(UBool value);

    static NumberFormat* createInstance(UErrorCode&);

    static NumberFormat* createInstance(const Locale& inLocale,
                                        UErrorCode&);

    static NumberFormat* createCurrencyInstance(UErrorCode&);

    static NumberFormat* createCurrencyInstance(const Locale& inLocale,
                                                UErrorCode&);

    static NumberFormat* createPercentInstance(UErrorCode&);

    static NumberFormat* createPercentInstance(const Locale& inLocale,
                                               UErrorCode&);

    static NumberFormat* createScientificInstance(UErrorCode&);

    static NumberFormat* createScientificInstance(const Locale& inLocale,
                                                UErrorCode&);

    static const Locale* getAvailableLocales(int32_t& count);

    UBool isGroupingUsed(void) const;

    virtual void setGroupingUsed(UBool newValue);

    int32_t getMaximumIntegerDigits(void) const;

    virtual void setMaximumIntegerDigits(int32_t newValue);

    int32_t getMinimumIntegerDigits(void) const;

    virtual void setMinimumIntegerDigits(int32_t newValue);

    int32_t getMaximumFractionDigits(void) const;

    virtual void setMaximumFractionDigits(int32_t newValue);

    int32_t getMinimumFractionDigits(void) const;

    virtual void setMinimumFractionDigits(int32_t newValue);

public:

    static UClassID getStaticClassID(void) { return (UClassID)&fgClassID; }

    virtual UClassID getDynamicClassID(void) const { return getStaticClassID(); }

protected:

    NumberFormat();

    NumberFormat(const NumberFormat&);

    NumberFormat& operator=(const NumberFormat&);

protected:
    static const int32_t fgMaxIntegerDigits;
    static const int32_t fgMinIntegerDigits;

private:
    static char fgClassID;

    enum EStyles {
        kNumberStyle,
        kCurrencyStyle,
        kPercentStyle,
        kScientificStyle,
        kStyleCount // ALWAYS LAST ENUM: number of styles
    };

    static NumberFormat* createInstance(const Locale& desiredLocale, EStyles choice, UErrorCode& success);

    static const int32_t         fgNumberPatternsCount;
    static const UnicodeString     fgLastResortNumberPatterns[];

    UBool      fGroupingUsed;
    int32_t     fMaxIntegerDigits;
    int32_t     fMinIntegerDigits;
    int32_t     fMaxFractionDigits;
    int32_t     fMinFractionDigits;
    UBool      fParseIntegerOnly;
};
 
// -------------------------------------
 
inline UBool
NumberFormat::isParseIntegerOnly() const
{
    return fParseIntegerOnly;
}

inline UnicodeString&
NumberFormat::format(const Formattable& obj,
                     UnicodeString& result,
                     UErrorCode& status) const {
    return Format::format(obj, result, status);
}
 
#endif // _NUMFMT
//eof

Generated at Wed Aug 16 16:05:48 2000 for ICU1.6 by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999