You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by be...@apache.org on 2014/02/15 10:49:41 UTC
[35/59] [abbrv] remove couch_collate
http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/dtitvinf.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/dtitvinf.h b/apps/couch_collate/platform/osx/icu/unicode/dtitvinf.h
deleted file mode 100644
index 07a8dbd..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/dtitvinf.h
+++ /dev/null
@@ -1,528 +0,0 @@
-/*
- *******************************************************************************
- * Copyright (C) 2008, International Business Machines Corporation and
- * others. All Rights Reserved.
- *******************************************************************************
- *
- * File DTITVINF.H
- *
- *******************************************************************************
- */
-
-#ifndef __DTITVINF_H__
-#define __DTITVINF_H__
-
-#include "unicode/utypes.h"
-
-/**
- * \file
- * \brief C++ API: Date/Time interval patterns for formatting date/time interval
- */
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/udat.h"
-#include "unicode/locid.h"
-#include "unicode/ucal.h"
-#include "unicode/dtptngen.h"
-//#include "dtitv_impl.h"
-
-/**
- * @internal ICU 4.0
- */
-
-union UHashTok;
-
-
-U_NAMESPACE_BEGIN
-
-U_CDECL_BEGIN
-
-/**
- * @internal ICU 4.0
- */
-static UBool U_CALLCONV hashTableValueComparator(UHashTok val1, UHashTok val2) ;
-
-U_CDECL_END
-
-
-/**
- * DateIntervalInfo is a public class for encapsulating localizable
- * date time interval patterns. It is used by DateIntervalFormat.
- *
- * <P>
- * For most users, ordinary use of DateIntervalFormat does not need to create
- * DateIntervalInfo object directly.
- * DateIntervalFormat will take care of it when creating a date interval
- * formatter when user pass in skeleton and locale.
- *
- * <P>
- * For power users, who want to create their own date interval patterns,
- * or want to re-set date interval patterns, they could do so by
- * directly creating DateIntervalInfo and manupulating it.
- *
- * <P>
- * Logically, the interval patterns are mappings
- * from (skeleton, the_largest_different_calendar_field)
- * to (date_interval_pattern).
- *
- * <P>
- * A skeleton
- * <ol>
- * <li>
- * only keeps the field pattern letter and ignores all other parts
- * in a pattern, such as space, punctuations, and string literals.
- * <li>
- * hides the order of fields.
- * <li>
- * might hide a field's pattern letter length.
- *
- * For those non-digit calendar fields, the pattern letter length is
- * important, such as MMM, MMMM, and MMMMM; EEE and EEEE,
- * and the field's pattern letter length is honored.
- *
- * For the digit calendar fields, such as M or MM, d or dd, yy or yyyy,
- * the field pattern length is ignored and the best match, which is defined
- * in date time patterns, will be returned without honor the field pattern
- * letter length in skeleton.
- * </ol>
- *
- * <P>
- * The calendar fields we support for interval formatting are:
- * year, month, date, day-of-week, am-pm, hour, hour-of-day, and minute.
- * Those calendar fields can be defined in the following order:
- * year > month > date > am-pm > hour > minute
- *
- * The largest different calendar fields between 2 calendars is the
- * first different calendar field in above order.
- *
- * For example: the largest different calendar fields between "Jan 10, 2007"
- * and "Feb 20, 2008" is year.
- *
- * <P>
- * There is a set of pre-defined static skeleton strings.
- * There are pre-defined interval patterns for those pre-defined skeletons
- * in locales' resource files.
- * For example, for a skeleton UDAT_YEAR_ABBR_MONTH_DAY, which is "yMMMd",
- * in en_US, if the largest different calendar field between date1 and date2
- * is "year", the date interval pattern is "MMM d, yyyy - MMM d, yyyy",
- * such as "Jan 10, 2007 - Jan 10, 2008".
- * If the largest different calendar field between date1 and date2 is "month",
- * the date interval pattern is "MMM d - MMM d, yyyy",
- * such as "Jan 10 - Feb 10, 2007".
- * If the largest different calendar field between date1 and date2 is "day",
- * the date interval pattern is ""MMM d-d, yyyy", such as "Jan 10-20, 2007".
- *
- * For date skeleton, the interval patterns when year, or month, or date is
- * different are defined in resource files.
- * For time skeleton, the interval patterns when am/pm, or hour, or minute is
- * different are defined in resource files.
- *
- *
- * <P>
- * There are 2 dates in interval pattern. For most locales, the first date
- * in an interval pattern is the earlier date. There might be a locale in which
- * the first date in an interval pattern is the later date.
- * We use fallback format for the default order for the locale.
- * For example, if the fallback format is "{0} - {1}", it means
- * the first date in the interval pattern for this locale is earlier date.
- * If the fallback format is "{1} - {0}", it means the first date is the
- * later date.
- * For a particular interval pattern, the default order can be overriden
- * by prefixing "latestFirst:" or "earliestFirst:" to the interval pattern.
- * For example, if the fallback format is "{0}-{1}",
- * but for skeleton "yMMMd", the interval pattern when day is different is
- * "latestFirst:d-d MMM yy", it means by default, the first date in interval
- * pattern is the earlier date. But for skeleton "yMMMd", when day is different,
- * the first date in "d-d MMM yy" is the later date.
- *
- * <P>
- * The recommended way to create a DateIntervalFormat object is to pass in
- * the locale.
- * By using a Locale parameter, the DateIntervalFormat object is
- * initialized with the pre-defined interval patterns for a given or
- * default locale.
- * <P>
- * Users can also create DateIntervalFormat object
- * by supplying their own interval patterns.
- * It provides flexibility for power users.
- *
- * <P>
- * After a DateIntervalInfo object is created, clients may modify
- * the interval patterns using setIntervalPattern function as so desired.
- * Currently, users can only set interval patterns when the following
- * calendar fields are different: ERA, YEAR, MONTH, DATE, DAY_OF_MONTH,
- * DAY_OF_WEEK, AM_PM, HOUR, HOUR_OF_DAY, and MINUTE.
- * Interval patterns when other calendar fields are different is not supported.
- * <P>
- * DateIntervalInfo objects are cloneable.
- * When clients obtain a DateIntervalInfo object,
- * they can feel free to modify it as necessary.
- * <P>
- * DateIntervalInfo are not expected to be subclassed.
- * Data for a calendar is loaded out of resource bundles.
- * To ICU 4.0, date interval patterns are only supported in Gregorian calendar.
- * @draft ICU 4.0
-**/
-
-class U_I18N_API DateIntervalInfo : public UObject {
-public:
- /**
- * Default constructor.
- * It does not initialize any interval patterns except
- * that it initialize default fall-back pattern as "{0} - {1}",
- * which can be reset by setFallbackIntervalPattern().
- * It should be followed by setFallbackIntervalPattern() and
- * setIntervalPattern(),
- * and is recommended to be used only for power users who
- * wants to create their own interval patterns and use them to create
- * date interval formatter.
- * @param status output param set to success/failure code on exit
- * @internal ICU 4.0
- */
- DateIntervalInfo(UErrorCode& status);
-
-
- /**
- * Construct DateIntervalInfo for the given locale,
- * @param locale the interval patterns are loaded from the Gregorian
- * calendar data in this locale.
- * @param status output param set to success/failure code on exit
- * @draft ICU 4.0
- */
- DateIntervalInfo(const Locale& locale, UErrorCode& status);
-
-
- /**
- * Copy constructor.
- * @draft ICU 4.0
- */
- DateIntervalInfo(const DateIntervalInfo&);
-
- /**
- * Assignment operator
- * @draft ICU 4.0
- */
- DateIntervalInfo& operator=(const DateIntervalInfo&);
-
- /**
- * Clone this object polymorphically.
- * The caller owns the result and should delete it when done.
- * @return a copy of the object
- * @draft ICU4.0
- */
- virtual DateIntervalInfo* clone(void) const;
-
- /**
- * Destructor.
- * It is virtual to be safe, but it is not designed to be subclassed.
- * @draft ICU 4.0
- */
- virtual ~DateIntervalInfo();
-
-
- /**
- * Return true if another object is semantically equal to this one.
- *
- * @param other the DateIntervalInfo object to be compared with.
- * @return true if other is semantically equal to this.
- * @stable ICU 4.0
- */
- virtual UBool operator==(const DateIntervalInfo& other) const;
-
- /**
- * Return true if another object is semantically unequal to this one.
- *
- * @param other the DateIntervalInfo object to be compared with.
- * @return true if other is semantically unequal to this.
- * @stable ICU 4.0
- */
- UBool operator!=(const DateIntervalInfo& other) const;
-
-
-
- /**
- * Provides a way for client to build interval patterns.
- * User could construct DateIntervalInfo by providing a list of skeletons
- * and their patterns.
- * <P>
- * For example:
- * <pre>
- * UErrorCode status = U_ZERO_ERROR;
- * DateIntervalInfo dIntervalInfo = new DateIntervalInfo();
- * dIntervalInfo->setFallbackIntervalPattern("{0} ~ {1}");
- * dIntervalInfo->setIntervalPattern("yMd", UCAL_YEAR, "'from' yyyy-M-d 'to' yyyy-M-d", status);
- * dIntervalInfo->setIntervalPattern("yMMMd", UCAL_MONTH, "'from' yyyy MMM d 'to' MMM d", status);
- * dIntervalInfo->setIntervalPattern("yMMMd", UCAL_DAY, "yyyy MMM d-d", status, status);
- * </pre>
- *
- * Restriction:
- * Currently, users can only set interval patterns when the following
- * calendar fields are different: ERA, YEAR, MONTH, DATE, DAY_OF_MONTH,
- * DAY_OF_WEEK, AM_PM, HOUR, HOUR_OF_DAY, and MINUTE.
- * Interval patterns when other calendar fields are different are
- * not supported.
- *
- * @param skeleton the skeleton on which interval pattern based
- * @param lrgDiffCalUnit the largest different calendar unit.
- * @param intervalPattern the interval pattern on the largest different
- * calendar unit.
- * For example, if lrgDiffCalUnit is
- * "year", the interval pattern for en_US when year
- * is different could be "'from' yyyy 'to' yyyy".
- * @param status output param set to success/failure code on exit
- * @draft ICU 4.0
- */
- void setIntervalPattern(const UnicodeString& skeleton,
- UCalendarDateFields lrgDiffCalUnit,
- const UnicodeString& intervalPattern,
- UErrorCode& status);
-
- /**
- * Get the interval pattern given skeleton and
- * the largest different calendar field.
- * @param skeleton the skeleton
- * @param field the largest different calendar field
- * @param result output param to receive the pattern
- * @param status output param set to success/failure code on exit
- * @return a reference to 'result'
- * @draft ICU 4.0
- */
- UnicodeString& getIntervalPattern(const UnicodeString& skeleton,
- UCalendarDateFields field,
- UnicodeString& result,
- UErrorCode& status) const;
-
- /**
- * Get the fallback interval pattern.
- * @param result output param to receive the pattern
- * @return a reference to 'result'
- * @draft ICU 4.0
- */
- UnicodeString& getFallbackIntervalPattern(UnicodeString& result) const;
-
-
- /**
- * Re-set the fallback interval pattern.
- *
- * In construction, default fallback pattern is set as "{0} - {1}".
- * And constructor taking locale as parameter will set the
- * fallback pattern as what defined in the locale resource file.
- *
- * This method provides a way for user to replace the fallback pattern.
- *
- * @param fallbackPattern fall-back interval pattern.
- * @param status output param set to success/failure code on exit
- * @draft ICU 4.0
- */
- void setFallbackIntervalPattern(const UnicodeString& fallbackPattern,
- UErrorCode& status);
-
-
- /** Get default order -- whether the first date in pattern is later date
- or not.
- * return default date ordering in interval pattern. TRUE if the first date
- * in pattern is later date, FALSE otherwise.
- * @draft ICU 4.0
- */
- UBool getDefaultOrder() const;
-
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 4.0
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 4.0
- */
- static UClassID U_EXPORT2 getStaticClassID();
-
-
-private:
- /**
- * DateIntervalFormat will need access to
- * getBestSkeleton(), parseSkeleton(), enum IntervalPatternIndex,
- * and calendarFieldToPatternIndex().
- *
- * Instead of making above public,
- * make DateIntervalFormat a friend of DateIntervalInfo.
- */
- friend class DateIntervalFormat;
-
- friend UBool U_CALLCONV hashTableValueComparator(UHashTok val1, UHashTok val2) ;
-
- /**
- * Following is for saving the interval patterns.
- * We only support interval patterns on
- * ERA, YEAR, MONTH, DAY, AM_PM, HOUR, and MINUTE
- */
- enum IntervalPatternIndex
- {
- kIPI_ERA,
- kIPI_YEAR,
- kIPI_MONTH,
- kIPI_DATE,
- kIPI_AM_PM,
- kIPI_HOUR,
- kIPI_MINUTE,
- kIPI_MAX_INDEX
- };
-
- /**
- * Initialize the DateIntervalInfo from locale
- * @param locale the given locale.
- * @param status output param set to success/failure code on exit
- * @internal ICU 4.0
- */
- void initializeData(const Locale& locale, UErrorCode& status);
-
-
- /* Set Interval pattern.
- *
- * It sets interval pattern into the hash map.
- *
- * @param skeleton skeleton on which the interval pattern based
- * @param lrgDiffCalUnit the largest different calendar unit.
- * @param intervalPattern the interval pattern on the largest different
- * calendar unit.
- * @param status output param set to success/failure code on exit
- * @internal ICU 4.0
- */
- void setIntervalPatternInternally(const UnicodeString& skeleton,
- UCalendarDateFields lrgDiffCalUnit,
- const UnicodeString& intervalPattern,
- UErrorCode& status);
-
-
- /**given an input skeleton, get the best match skeleton
- * which has pre-defined interval pattern in resource file.
- * Also return the difference between the input skeleton
- * and the best match skeleton.
- *
- * TODO (xji): set field weight or
- * isolate the funtionality in DateTimePatternGenerator
- * @param skeleton input skeleton
- * @param bestMatchDistanceInfo the difference between input skeleton
- * and best match skeleton.
- * 0, if there is exact match for input skeleton
- * 1, if there is only field width difference between
- * the best match and the input skeleton
- * 2, the only field difference is 'v' and 'z'
- * -1, if there is calendar field difference between
- * the best match and the input skeleton
- * @return best match skeleton
- * @internal ICU 4.0
- */
- const UnicodeString* getBestSkeleton(const UnicodeString& skeleton,
- int8_t& bestMatchDistanceInfo) const;
-
-
- /**
- * Parse skeleton, save each field's width.
- * It is used for looking for best match skeleton,
- * and adjust pattern field width.
- * @param skeleton skeleton to be parsed
- * @param skeletonFieldWidth parsed skeleton field width
- * @internal ICU 4.0
- */
- static void U_EXPORT2 parseSkeleton(const UnicodeString& skeleton,
- int32_t* skeletonFieldWidth);
-
-
- /**
- * Check whether one field width is numeric while the other is string.
- *
- * TODO (xji): make it general
- *
- * @param fieldWidth one field width
- * @param anotherFieldWidth another field width
- * @param patternLetter pattern letter char
- * @return true if one field width is numeric and the other is string,
- * false otherwise.
- * @internal ICU 4.0
- */
- static UBool U_EXPORT2 stringNumeric(int32_t fieldWidth,
- int32_t anotherFieldWidth,
- char patternLetter);
-
-
- /**
- * Convert calendar field to the interval pattern index in
- * hash table.
- *
- * Since we only support the following calendar fields:
- * ERA, YEAR, MONTH, DATE, DAY_OF_MONTH, DAY_OF_WEEK,
- * AM_PM, HOUR, HOUR_OF_DAY, and MINUTE,
- * We reserve only 4 interval patterns for a skeleton.
- *
- * @param field calendar field
- * @param status output param set to success/failure code on exit
- * @return interval pattern index in hash table
- * @internal ICU 4.0
- */
- static IntervalPatternIndex U_EXPORT2 calendarFieldToIntervalIndex(
- UCalendarDateFields field,
- UErrorCode& status);
-
-
- /**
- * delete hash table (of type fIntervalPatterns).
- *
- * @param hTable hash table to be deleted
- * @internal ICU 4.0
- */
- void deleteHash(Hashtable* hTable);
-
-
- /**
- * initialize hash table (of type fIntervalPatterns).
- *
- * @param status output param set to success/failure code on exit
- * @return hash table initialized
- * @internal ICU 4.0
- */
- Hashtable* initHash(UErrorCode& status);
-
-
-
- /**
- * copy hash table (of type fIntervalPatterns).
- *
- * @param source the source to copy from
- * @param target the target to copy to
- * @param status output param set to success/failure code on exit
- * @internal ICU 4.0
- */
- void copyHash(const Hashtable* source, Hashtable* target, UErrorCode& status);
-
-
- // data members
- // fallback interval pattern
- UnicodeString fFallbackIntervalPattern;
- // default order
- UBool fFirstDateInPtnIsLaterDate;
-
- // HashMap<UnicodeString, UnicodeString[kIPI_MAX_INDEX]>
- // HashMap( skeleton, pattern[largest_different_field] )
- Hashtable* fIntervalPatterns;
-
-};// end class DateIntervalInfo
-
-
-inline UBool
-DateIntervalInfo::operator!=(const DateIntervalInfo& other) const {
- return !operator==(other);
-}
-
-
-U_NAMESPACE_END
-
-#endif
-
-#endif
-
http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/dtptngen.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/dtptngen.h b/apps/couch_collate/platform/osx/icu/unicode/dtptngen.h
deleted file mode 100644
index eeea626..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/dtptngen.h
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
-*******************************************************************************
-* Copyright (C) 2007-2009, International Business Machines Corporation and
-* others. All Rights Reserved.
-*******************************************************************************
-*
-* File DTPTNGEN.H
-*
-*******************************************************************************
-*/
-
-#ifndef __DTPTNGEN_H__
-#define __DTPTNGEN_H__
-
-#include "unicode/datefmt.h"
-#include "unicode/locid.h"
-#include "unicode/udat.h"
-#include "unicode/udatpg.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * \file
- * \brief C++ API: Date/Time Pattern Generator
- */
-
-
-class Hashtable;
-class FormatParser;
-class DateTimeMatcher;
-class DistanceInfo;
-class PatternMap;
-class PtnSkeleton;
-
-/**
- * This class provides flexible generation of date format patterns, like "yy-MM-dd".
- * The user can build up the generator by adding successive patterns. Once that
- * is done, a query can be made using a "skeleton", which is a pattern which just
- * includes the desired fields and lengths. The generator will return the "best fit"
- * pattern corresponding to that skeleton.
- * <p>The main method people will use is getBestPattern(String skeleton),
- * since normally this class is pre-built with data from a particular locale.
- * However, generators can be built directly from other data as well.
- * <p><i>Issue: may be useful to also have a function that returns the list of
- * fields in a pattern, in order, since we have that internally.
- * That would be useful for getting the UI order of field elements.</i>
- * @stable ICU 3.8
-**/
-class U_I18N_API DateTimePatternGenerator : public UObject {
-public:
- /**
- * Construct a flexible generator according to default locale.
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @stable ICU 3.8
- */
- static DateTimePatternGenerator* U_EXPORT2 createInstance(UErrorCode& status);
-
- /**
- * Construct a flexible generator according to data for a given locale.
- * @param uLocale
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @stable ICU 3.8
- */
- static DateTimePatternGenerator* U_EXPORT2 createInstance(const Locale& uLocale, UErrorCode& status);
-
- /**
- * Create an empty generator, to be constructed with addPattern(...) etc.
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @stable ICU 3.8
- */
- static DateTimePatternGenerator* U_EXPORT2 createEmptyInstance(UErrorCode& status);
-
- /**
- * Destructor.
- * @stable ICU 3.8
- */
- virtual ~DateTimePatternGenerator();
-
- /**
- * Clone DateTimePatternGenerator object. Clients are responsible for
- * deleting the DateTimePatternGenerator object cloned.
- * @stable ICU 3.8
- */
- DateTimePatternGenerator* clone() const;
-
- /**
- * Return true if another object is semantically equal to this one.
- *
- * @param other the DateTimePatternGenerator object to be compared with.
- * @return true if other is semantically equal to this.
- * @stable ICU 3.8
- */
- UBool operator==(const DateTimePatternGenerator& other) const;
-
- /**
- * Return true if another object is semantically unequal to this one.
- *
- * @param other the DateTimePatternGenerator object to be compared with.
- * @return true if other is semantically unequal to this.
- * @stable ICU 3.8
- */
- UBool operator!=(const DateTimePatternGenerator& other) const;
-
- /**
- * Utility to return a unique skeleton from a given pattern. For example,
- * both "MMM-dd" and "dd/MMM" produce the skeleton "MMMdd".
- *
- * @param pattern Input pattern, such as "dd/MMM"
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @return skeleton such as "MMMdd"
- * @stable ICU 3.8
- */
- UnicodeString getSkeleton(const UnicodeString& pattern, UErrorCode& status);
-
- /**
- * Utility to return a unique base skeleton from a given pattern. This is
- * the same as the skeleton, except that differences in length are minimized
- * so as to only preserve the difference between string and numeric form. So
- * for example, both "MMM-dd" and "d/MMM" produce the skeleton "MMMd"
- * (notice the single d).
- *
- * @param pattern Input pattern, such as "dd/MMM"
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @return base skeleton, such as "Md"
- * @stable ICU 3.8
- */
- UnicodeString getBaseSkeleton(const UnicodeString& pattern, UErrorCode& status);
-
- /**
- * Adds a pattern to the generator. If the pattern has the same skeleton as
- * an existing pattern, and the override parameter is set, then the previous
- * value is overriden. Otherwise, the previous value is retained. In either
- * case, the conflicting status is set and previous vale is stored in
- * conflicting pattern.
- * <p>
- * Note that single-field patterns (like "MMM") are automatically added, and
- * don't need to be added explicitly!
- *
- * @param pattern Input pattern, such as "dd/MMM"
- * @param override When existing values are to be overridden use true,
- * otherwise use false.
- * @param conflictingPattern Previous pattern with the same skeleton.
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @return conflicting status. The value could be UDATPG_NO_CONFLICT,
- * UDATPG_BASE_CONFLICT or UDATPG_CONFLICT.
- * @stable ICU 3.8
- */
- UDateTimePatternConflict addPattern(const UnicodeString& pattern,
- UBool override,
- UnicodeString& conflictingPattern,
- UErrorCode& status);
-
- /**
- * An AppendItem format is a pattern used to append a field if there is no
- * good match. For example, suppose that the input skeleton is "GyyyyMMMd",
- * and there is no matching pattern internally, but there is a pattern
- * matching "yyyyMMMd", say "d-MM-yyyy". Then that pattern is used, plus the
- * G. The way these two are conjoined is by using the AppendItemFormat for G
- * (era). So if that value is, say "{0}, {1}" then the final resulting
- * pattern is "d-MM-yyyy, G".
- * <p>
- * There are actually three available variables: {0} is the pattern so far,
- * {1} is the element we are adding, and {2} is the name of the element.
- * <p>
- * This reflects the way that the CLDR data is organized.
- *
- * @param field such as UDATPG_ERA_FIELD.
- * @param value pattern, such as "{0}, {1}"
- * @stable ICU 3.8
- */
- void setAppendItemFormat(UDateTimePatternField field, const UnicodeString& value);
-
- /**
- * Getter corresponding to setAppendItemFormat. Values below 0 or at or
- * above UDATPG_FIELD_COUNT are illegal arguments.
- *
- * @param field such as UDATPG_ERA_FIELD.
- * @return append pattern for field
- * @stable ICU 3.8
- */
- const UnicodeString& getAppendItemFormat(UDateTimePatternField field) const;
-
- /**
- * Sets the names of field, eg "era" in English for ERA. These are only
- * used if the corresponding AppendItemFormat is used, and if it contains a
- * {2} variable.
- * <p>
- * This reflects the way that the CLDR data is organized.
- *
- * @param field such as UDATPG_ERA_FIELD.
- * @param value name of the field
- * @stable ICU 3.8
- */
- void setAppendItemName(UDateTimePatternField field, const UnicodeString& value);
-
- /**
- * Getter corresponding to setAppendItemNames. Values below 0 or at or above
- * UDATPG_FIELD_COUNT are illegal arguments.
- *
- * @param field such as UDATPG_ERA_FIELD.
- * @return name for field
- * @stable ICU 3.8
- */
- const UnicodeString& getAppendItemName(UDateTimePatternField field) const;
-
- /**
- * The date time format is a message format pattern used to compose date and
- * time patterns. The default value is "{0} {1}", where {0} will be replaced
- * by the date pattern and {1} will be replaced by the time pattern.
- * <p>
- * This is used when the input skeleton contains both date and time fields,
- * but there is not a close match among the added patterns. For example,
- * suppose that this object was created by adding "dd-MMM" and "hh:mm", and
- * its datetimeFormat is the default "{0} {1}". Then if the input skeleton
- * is "MMMdhmm", there is not an exact match, so the input skeleton is
- * broken up into two components "MMMd" and "hmm". There are close matches
- * for those two skeletons, so the result is put together with this pattern,
- * resulting in "d-MMM h:mm".
- *
- * @param dateTimeFormat
- * message format pattern, here {0} will be replaced by the date
- * pattern and {1} will be replaced by the time pattern.
- * @stable ICU 3.8
- */
- void setDateTimeFormat(const UnicodeString& dateTimeFormat);
-
- /**
- * Getter corresponding to setDateTimeFormat.
- * @return DateTimeFormat.
- * @stable ICU 3.8
- */
- const UnicodeString& getDateTimeFormat() const;
-
- /**
- * Return the best pattern matching the input skeleton. It is guaranteed to
- * have all of the fields in the skeleton.
- *
- * @param skeleton
- * The skeleton is a pattern containing only the variable fields.
- * For example, "MMMdd" and "mmhh" are skeletons.
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @return bestPattern
- * The best pattern found from the given skeleton.
- * @stable ICU 3.8
- */
- UnicodeString getBestPattern(const UnicodeString& skeleton, UErrorCode& status);
-
-
- /**
- * Adjusts the field types (width and subtype) of a pattern to match what is
- * in a skeleton. That is, if you supply a pattern like "d-M H:m", and a
- * skeleton of "MMMMddhhmm", then the input pattern is adjusted to be
- * "dd-MMMM hh:mm". This is used internally to get the best match for the
- * input skeleton, but can also be used externally.
- *
- * @param pattern Input pattern
- * @param skeleton
- * The skeleton is a pattern containing only the variable fields.
- * For example, "MMMdd" and "mmhh" are skeletons.
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @return pattern adjusted to match the skeleton fields widths and subtypes.
- * @stable ICU 3.8
- */
- UnicodeString replaceFieldTypes(const UnicodeString& pattern,
- const UnicodeString& skeleton,
- UErrorCode& status);
-
- /**
- * Return a list of all the skeletons (in canonical form) from this class.
- *
- * Call getPatternForSkeleton() to get the corresponding pattern.
- *
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @return StringEnumeration with the skeletons.
- * The caller must delete the object.
- * @stable ICU 3.8
- */
- StringEnumeration* getSkeletons(UErrorCode& status) const;
-
- /**
- * Get the pattern corresponding to a given skeleton.
- * @param skeleton
- * @return pattern corresponding to a given skeleton.
- * @stable ICU 3.8
- */
- const UnicodeString& getPatternForSkeleton(const UnicodeString& skeleton) const;
-
- /**
- * Return a list of all the base skeletons (in canonical form) from this class.
- *
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @return a StringEnumeration with the base skeletons.
- * The caller must delete the object.
- * @stable ICU 3.8
- */
- StringEnumeration* getBaseSkeletons(UErrorCode& status) const;
-
- /**
- * Return a list of redundant patterns are those which if removed, make no
- * difference in the resulting getBestPattern values. This method returns a
- * list of them, to help check the consistency of the patterns used to build
- * this generator.
- *
- * @param status Output param set to success/failure code on exit,
- * which must not indicate a failure before the function call.
- * @return a StringEnumeration with the redundant pattern.
- * The caller must delete the object.
- * @internal ICU 3.8
- */
- StringEnumeration* getRedundants(UErrorCode& status);
-
- /**
- * The decimal value is used in formatting fractions of seconds. If the
- * skeleton contains fractional seconds, then this is used with the
- * fractional seconds. For example, suppose that the input pattern is
- * "hhmmssSSSS", and the best matching pattern internally is "H:mm:ss", and
- * the decimal string is ",". Then the resulting pattern is modified to be
- * "H:mm:ss,SSSS"
- *
- * @param decimal
- * @stable ICU 3.8
- */
- void setDecimal(const UnicodeString& decimal);
-
- /**
- * Getter corresponding to setDecimal.
- * @return UnicodeString corresponding to the decimal point
- * @stable ICU 3.8
- */
- const UnicodeString& getDecimal() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 3.8
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 3.8
- */
- static UClassID U_EXPORT2 getStaticClassID(void);
-
-private:
- /**
- * Constructor.
- * @stable ICU 3.8
- */
- DateTimePatternGenerator(UErrorCode & status);
-
- /**
- * Constructor.
- * @stable ICU 3.8
- */
- DateTimePatternGenerator(const Locale& locale, UErrorCode & status);
-
- /**
- * Copy constructor.
- * @param other DateTimePatternGenerator to copy
- * @stable ICU 3.8
- */
- DateTimePatternGenerator(const DateTimePatternGenerator& other);
-
- /**
- * Default assignment operator.
- * @param other DateTimePatternGenerator to copy
- * @stable ICU 3.8
- */
- DateTimePatternGenerator& operator=(const DateTimePatternGenerator& other);
-
- Locale pLocale; // pattern locale
- FormatParser *fp;
- DateTimeMatcher* dtMatcher;
- DistanceInfo *distanceInfo;
- PatternMap *patternMap;
- UnicodeString appendItemFormats[UDATPG_FIELD_COUNT];
- UnicodeString appendItemNames[UDATPG_FIELD_COUNT];
- UnicodeString dateTimeFormat;
- UnicodeString decimal;
- DateTimeMatcher *skipMatcher;
- Hashtable *fAvailableFormatKeyHash;
- UnicodeString hackPattern;
- UnicodeString emptyString;
- UChar fDefaultHourFormatChar;
-
- void initData(const Locale &locale, UErrorCode &status);
- void addCanonicalItems();
- void addICUPatterns(const Locale& locale, UErrorCode& status);
- void hackTimes(const UnicodeString& hackPattern, UErrorCode& status);
- void addCLDRData(const Locale& locale);
- UDateTimePatternConflict addPatternWithSkeleton(const UnicodeString& pattern, const UnicodeString * skeletonToUse, UBool override, UnicodeString& conflictingPattern, UErrorCode& status);
- void initHashtable(UErrorCode& status);
- void setDateTimeFromCalendar(const Locale& locale, UErrorCode& status);
- void setDecimalSymbols(const Locale& locale, UErrorCode& status);
- UDateTimePatternField getAppendFormatNumber(const char* field) const;
- UDateTimePatternField getAppendNameNumber(const char* field) const;
- void getAppendName(UDateTimePatternField field, UnicodeString& value);
- int32_t getCanonicalIndex(const UnicodeString& field);
- const UnicodeString* getBestRaw(DateTimeMatcher& source, int32_t includeMask, DistanceInfo* missingFields, const PtnSkeleton** specifiedSkeletonPtr = 0);
- UnicodeString adjustFieldTypes(const UnicodeString& pattern, const PtnSkeleton* specifiedSkeleton, UBool fixFractionalSeconds);
- UnicodeString getBestAppending(int32_t missingFields);
- int32_t getTopBitNumber(int32_t foundMask);
- void setAvailableFormat(const UnicodeString &key, UErrorCode& status);
- UBool isAvailableFormatSet(const UnicodeString &key) const;
- void copyHashtable(Hashtable *other, UErrorCode &status);
- UBool isCanonicalItem(const UnicodeString& item) const;
-} ;// end class DateTimePatternGenerator
-
-U_NAMESPACE_END
-
-#endif
http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/dtrule.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/dtrule.h b/apps/couch_collate/platform/osx/icu/unicode/dtrule.h
deleted file mode 100644
index c46e618..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/dtrule.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
-*******************************************************************************
-* Copyright (C) 2007-2008, International Business Machines Corporation and *
-* others. All Rights Reserved. *
-*******************************************************************************
-*/
-#ifndef DTRULE_H
-#define DTRULE_H
-
-#include "unicode/utypes.h"
-
-/**
- * \file
- * \brief C++ API: Rule for specifying date and time in an year
- */
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/uobject.h"
-
-U_NAMESPACE_BEGIN
-/**
- * <code>DateTimeRule</code> is a class representing a time in a year by
- * a rule specified by month, day of month, day of week and
- * time in the day.
- *
- * @stable ICU 4.0
- */
-class U_I18N_API DateTimeRule : public UObject {
-public:
-
- /**
- * Date rule type constants.
- * @stable ICU 4.0
- */
- enum DateRuleType {
- DOM = 0, /**< The exact day of month,
- for example, March 11. */
- DOW, /**< The Nth occurence of the day of week,
- for example, 2nd Sunday in March. */
- DOW_GEQ_DOM, /**< The first occurence of the day of week on or after the day of monnth,
- for example, first Sunday on or after March 8. */
- DOW_LEQ_DOM /**< The last occurence of the day of week on or before the day of month,
- for example, first Sunday on or before March 14. */
- };
-
- /**
- * Time rule type constants.
- * @stable ICU 4.0
- */
- enum TimeRuleType {
- WALL_TIME = 0, /**< The local wall clock time */
- STANDARD_TIME, /**< The local standard time */
- UTC_TIME /**< The UTC time */
- };
-
- /**
- * Constructs a <code>DateTimeRule</code> by the day of month and
- * the time rule. The date rule type for an instance created by
- * this constructor is <code>DOM</code>.
- *
- * @param month The rule month, for example, <code>Calendar::JANUARY</code>
- * @param dayOfMonth The day of month, 1-based.
- * @param millisInDay The milliseconds in the rule date.
- * @param timeType The time type, <code>WALL_TIME</code> or <code>STANDARD_TIME</code>
- * or <code>UTC_TIME</code>.
- * @stable ICU 4.0
- */
- DateTimeRule(int32_t month, int32_t dayOfMonth,
- int32_t millisInDay, TimeRuleType timeType);
-
- /**
- * Constructs a <code>DateTimeRule</code> by the day of week and its oridinal
- * number and the time rule. The date rule type for an instance created
- * by this constructor is <code>DOW</code>.
- *
- * @param month The rule month, for example, <code>Calendar::JANUARY</code>.
- * @param weekInMonth The ordinal number of the day of week. Negative number
- * may be used for specifying a rule date counted from the
- * end of the rule month.
- * @param dayOfWeek The day of week, for example, <code>Calendar::SUNDAY</code>.
- * @param millisInDay The milliseconds in the rule date.
- * @param timeType The time type, <code>WALL_TIME</code> or <code>STANDARD_TIME</code>
- * or <code>UTC_TIME</code>.
- * @stable ICU 4.0
- */
- DateTimeRule(int32_t month, int32_t weekInMonth, int32_t dayOfWeek,
- int32_t millisInDay, TimeRuleType timeType);
-
- /**
- * Constructs a <code>DateTimeRule</code> by the first/last day of week
- * on or after/before the day of month and the time rule. The date rule
- * type for an instance created by this constructor is either
- * <code>DOM_GEQ_DOM</code> or <code>DOM_LEQ_DOM</code>.
- *
- * @param month The rule month, for example, <code>Calendar::JANUARY</code>
- * @param dayOfMonth The day of month, 1-based.
- * @param dayOfWeek The day of week, for example, <code>Calendar::SUNDAY</code>.
- * @param after true if the rule date is on or after the day of month.
- * @param millisInDay The milliseconds in the rule date.
- * @param timeType The time type, <code>WALL_TIME</code> or <code>STANDARD_TIME</code>
- * or <code>UTC_TIME</code>.
- * @stable ICU 4.0
- */
- DateTimeRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, UBool after,
- int32_t millisInDay, TimeRuleType timeType);
-
- /**
- * Copy constructor.
- * @param source The DateTimeRule object to be copied.
- * @stable ICU 4.0
- */
- DateTimeRule(const DateTimeRule& source);
-
- /**
- * Destructor.
- * @stable ICU 4.0
- */
- ~DateTimeRule();
-
- /**
- * Clone this DateTimeRule object polymorphically. The caller owns the result and
- * should delete it when done.
- * @return A copy of the object.
- * @stable ICU 4.0
- */
- DateTimeRule* clone(void) const;
-
- /**
- * Assignment operator.
- * @param right The object to be copied.
- * @stable ICU 4.0
- */
- DateTimeRule& operator=(const DateTimeRule& right);
-
- /**
- * Return true if the given DateTimeRule objects are semantically equal. Objects
- * of different subclasses are considered unequal.
- * @param that The object to be compared with.
- * @return true if the given DateTimeRule objects are semantically equal.
- * @stable ICU 4.0
- */
- UBool operator==(const DateTimeRule& that) const;
-
- /**
- * Return true if the given DateTimeRule objects are semantically unequal. Objects
- * of different subclasses are considered unequal.
- * @param that The object to be compared with.
- * @return true if the given DateTimeRule objects are semantically unequal.
- * @stable ICU 4.0
- */
- UBool operator!=(const DateTimeRule& that) const;
-
- /**
- * Gets the date rule type, such as <code>DOM</code>
- * @return The date rule type.
- * @stable ICU 4.0
- */
- DateRuleType getDateRuleType(void) const;
-
- /**
- * Gets the time rule type
- * @return The time rule type, either <code>WALL_TIME</code> or <code>STANDARD_TIME</code>
- * or <code>UTC_TIME</code>.
- * @stable ICU 4.0
- */
- TimeRuleType getTimeRuleType(void) const;
-
- /**
- * Gets the rule month.
- * @return The rule month.
- * @stable ICU 4.0
- */
- int32_t getRuleMonth(void) const;
-
- /**
- * Gets the rule day of month. When the date rule type
- * is <code>DOW</code>, the value is always 0.
- * @return The rule day of month
- * @stable ICU 4.0
- */
- int32_t getRuleDayOfMonth(void) const;
-
- /**
- * Gets the rule day of week. When the date rule type
- * is <code>DOM</code>, the value is always 0.
- * @return The rule day of week.
- * @stable ICU 4.0
- */
- int32_t getRuleDayOfWeek(void) const;
-
- /**
- * Gets the ordinal number of the occurence of the day of week
- * in the month. When the date rule type is not <code>DOW</code>,
- * the value is always 0.
- * @return The rule day of week ordinal number in the month.
- * @stable ICU 4.0
- */
- int32_t getRuleWeekInMonth(void) const;
-
- /**
- * Gets the rule time in the rule day.
- * @return The time in the rule day in milliseconds.
- * @stable ICU 4.0
- */
- int32_t getRuleMillisInDay(void) const;
-
-private:
- int32_t fMonth;
- int32_t fDayOfMonth;
- int32_t fDayOfWeek;
- int32_t fWeekInMonth;
- int32_t fMillisInDay;
- DateRuleType fDateRuleType;
- TimeRuleType fTimeRuleType;
-
-public:
- /**
- * Return the class ID for this class. This is useful only for comparing to
- * a return value from getDynamicClassID(). For example:
- * <pre>
- * . Base* polymorphic_pointer = createPolymorphicObject();
- * . if (polymorphic_pointer->getDynamicClassID() ==
- * . erived::getStaticClassID()) ...
- * </pre>
- * @return The class ID for all objects of this class.
- * @stable ICU 4.0
- */
- static UClassID U_EXPORT2 getStaticClassID(void);
-
- /**
- * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
- * method is to implement a simple version of RTTI, since not all C++
- * compilers support genuine RTTI. Polymorphic operator==() and clone()
- * methods call this method.
- *
- * @return The class ID for this object. All objects of a
- * given class have the same class ID. Objects of
- * other classes have different class IDs.
- * @stable ICU 4.0
- */
- virtual UClassID getDynamicClassID(void) const;
-};
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
-
-#endif // DTRULE_H
-//eof
http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/fieldpos.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/fieldpos.h b/apps/couch_collate/platform/osx/icu/unicode/fieldpos.h
deleted file mode 100644
index 38a9576..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/fieldpos.h
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- ********************************************************************************
- * Copyright (C) 1997-2006, International Business Machines
- * Corporation and others. All Rights Reserved.
- ********************************************************************************
- *
- * File FIELDPOS.H
- *
- * Modification History:
- *
- * Date Name Description
- * 02/25/97 aliu Converted from java.
- * 03/17/97 clhuang Updated per Format implementation.
- * 07/17/98 stephen Added default/copy ctors, and operators =, ==, !=
- ********************************************************************************
- */
-
-// *****************************************************************************
-// This file was generated from the java source file FieldPosition.java
-// *****************************************************************************
-
-#ifndef FIELDPOS_H
-#define FIELDPOS_H
-
-#include "unicode/utypes.h"
-
-/**
- * \file
- * \brief C++ API: FieldPosition identifies the fields in a formatted output.
- */
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/uobject.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * <code>FieldPosition</code> is a simple class used by <code>Format</code>
- * and its subclasses to identify fields in formatted output. Fields are
- * identified by constants, whose names typically end with <code>_FIELD</code>,
- * defined in the various subclasses of <code>Format</code>. See
- * <code>ERA_FIELD</code> and its friends in <code>DateFormat</code> for
- * an example.
- *
- * <p>
- * <code>FieldPosition</code> keeps track of the position of the
- * field within the formatted output with two indices: the index
- * of the first character of the field and the index of the last
- * character of the field.
- *
- * <p>
- * One version of the <code>format</code> method in the various
- * <code>Format</code> classes requires a <code>FieldPosition</code>
- * object as an argument. You use this <code>format</code> method
- * to perform partial formatting or to get information about the
- * formatted output (such as the position of a field).
- *
- * The FieldPosition class is not suitable for subclassing.
- *
- * <p>
- * Below is an example of using <code>FieldPosition</code> to aid
- * alignment of an array of formatted floating-point numbers on
- * their decimal points:
- * <pre>
- * \code
- * double doubleNum[] = {123456789.0, -12345678.9, 1234567.89, -123456.789,
- * 12345.6789, -1234.56789, 123.456789, -12.3456789, 1.23456789};
- * int dNumSize = (int)(sizeof(doubleNum)/sizeof(double));
- *
- * UErrorCode status = U_ZERO_ERROR;
- * DecimalFormat* fmt = (DecimalFormat*) NumberFormat::createInstance(status);
- * fmt->setDecimalSeparatorAlwaysShown(true);
- *
- * const int tempLen = 20;
- * char temp[tempLen];
- *
- * for (int i=0; i<dNumSize; i++) {
- * FieldPosition pos(NumberFormat::INTEGER_FIELD);
- * UnicodeString buf;
- * char fmtText[tempLen];
- * ToCharString(fmt->format(doubleNum[i], buf, pos), fmtText);
- * for (int j=0; j<tempLen; j++) temp[j] = ' '; // clear with spaces
- * temp[__min(tempLen, tempLen-pos.getEndIndex())] = '\0';
- * cout << temp << fmtText << endl;
- * }
- * delete fmt;
- * \endcode
- * </pre>
- * <p>
- * The code will generate the following output:
- * <pre>
- * \code
- * 123,456,789.000
- * -12,345,678.900
- * 1,234,567.880
- * -123,456.789
- * 12,345.678
- * -1,234.567
- * 123.456
- * -12.345
- * 1.234
- * \endcode
- * </pre>
- */
-class U_I18N_API FieldPosition : public UObject {
-public:
- /**
- * DONT_CARE may be specified as the field to indicate that the
- * caller doesn't need to specify a field. Do not subclass.
- */
- enum { DONT_CARE = -1 };
-
- /**
- * Creates a FieldPosition object with a non-specified field.
- * @stable ICU 2.0
- */
- FieldPosition()
- : UObject(), fField(DONT_CARE), fBeginIndex(0), fEndIndex(0) {}
-
- /**
- * Creates a FieldPosition object for the given field. Fields are
- * identified by constants, whose names typically end with _FIELD,
- * in the various subclasses of Format.
- *
- * @see NumberFormat#INTEGER_FIELD
- * @see NumberFormat#FRACTION_FIELD
- * @see DateFormat#YEAR_FIELD
- * @see DateFormat#MONTH_FIELD
- * @stable ICU 2.0
- */
- FieldPosition(int32_t field)
- : UObject(), fField(field), fBeginIndex(0), fEndIndex(0) {}
-
- /**
- * Copy constructor
- * @param copy the object to be copied from.
- * @stable ICU 2.0
- */
- FieldPosition(const FieldPosition& copy)
- : UObject(copy), fField(copy.fField), fBeginIndex(copy.fBeginIndex), fEndIndex(copy.fEndIndex) {}
-
- /**
- * Destructor
- * @stable ICU 2.0
- */
- virtual ~FieldPosition();
-
- /**
- * Assignment operator
- * @param copy the object to be copied from.
- * @stable ICU 2.0
- */
- FieldPosition& operator=(const FieldPosition& copy);
-
- /**
- * Equality operator.
- * @param that the object to be compared with.
- * @return TRUE if the two field positions are equal, FALSE otherwise.
- * @stable ICU 2.0
- */
- UBool operator==(const FieldPosition& that) const;
-
- /**
- * Equality operator.
- * @param that the object to be compared with.
- * @return TRUE if the two field positions are not equal, FALSE otherwise.
- * @stable ICU 2.0
- */
- UBool operator!=(const FieldPosition& that) const;
-
- /**
- * Clone this object.
- * Clones can be used concurrently in multiple threads.
- * If an error occurs, then NULL is returned.
- * The caller must delete the clone.
- *
- * @return a clone of this object
- *
- * @see getDynamicClassID
- * @stable ICU 2.8
- */
- FieldPosition *clone() const;
-
- /**
- * Retrieve the field identifier.
- * @return the field identifier.
- * @stable ICU 2.0
- */
- int32_t getField(void) const { return fField; }
-
- /**
- * Retrieve the index of the first character in the requested field.
- * @return the index of the first character in the requested field.
- * @stable ICU 2.0
- */
- int32_t getBeginIndex(void) const { return fBeginIndex; }
-
- /**
- * Retrieve the index of the character following the last character in the
- * requested field.
- * @return the index of the character following the last character in the
- * requested field.
- * @stable ICU 2.0
- */
- int32_t getEndIndex(void) const { return fEndIndex; }
-
- /**
- * Set the field.
- * @param f the new value of the field.
- * @stable ICU 2.0
- */
- void setField(int32_t f) { fField = f; }
-
- /**
- * Set the begin index. For use by subclasses of Format.
- * @param bi the new value of the begin index
- * @stable ICU 2.0
- */
- void setBeginIndex(int32_t bi) { fBeginIndex = bi; }
-
- /**
- * Set the end index. For use by subclasses of Format.
- * @param ei the new value of the end index
- * @stable ICU 2.0
- */
- void setEndIndex(int32_t ei) { fEndIndex = ei; }
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.2
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.2
- */
- static UClassID U_EXPORT2 getStaticClassID();
-
-private:
- /**
- * Input: Desired field to determine start and end offsets for.
- * The meaning depends on the subclass of Format.
- */
- int32_t fField;
-
- /**
- * Output: Start offset of field in text.
- * If the field does not occur in the text, 0 is returned.
- */
- int32_t fBeginIndex;
-
- /**
- * Output: End offset of field in text.
- * If the field does not occur in the text, 0 is returned.
- */
- int32_t fEndIndex;
-};
-
-inline FieldPosition&
-FieldPosition::operator=(const FieldPosition& copy)
-{
- fField = copy.fField;
- fEndIndex = copy.fEndIndex;
- fBeginIndex = copy.fBeginIndex;
- return *this;
-}
-
-inline UBool
-FieldPosition::operator==(const FieldPosition& copy) const
-{
- return (fField == copy.fField &&
- fEndIndex == copy.fEndIndex &&
- fBeginIndex == copy.fBeginIndex);
-}
-
-inline UBool
-FieldPosition::operator!=(const FieldPosition& copy) const
-{
- return !operator==(copy);
-}
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
-
-#endif // _FIELDPOS
-//eof
http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/fmtable.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/fmtable.h b/apps/couch_collate/platform/osx/icu/unicode/fmtable.h
deleted file mode 100644
index 94ee328..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/fmtable.h
+++ /dev/null
@@ -1,591 +0,0 @@
-/*
-********************************************************************************
-* Copyright (C) 1997-2006, International Business Machines
-* Corporation and others. All Rights Reserved.
-********************************************************************************
-*
-* File FMTABLE.H
-*
-* Modification History:
-*
-* Date Name Description
-* 02/29/97 aliu Creation.
-********************************************************************************
-*/
-#ifndef FMTABLE_H
-#define FMTABLE_H
-
-#include "unicode/utypes.h"
-#include "unicode/unistr.h"
-/**
- * \file
- * \brief C++ API: Formattable is a thin wrapper for primitive numeric types.
- */
-
-#if !UCONFIG_NO_FORMATTING
-
-U_NAMESPACE_BEGIN
-
-/**
- * Formattable objects can be passed to the Format class or
- * its subclasses for formatting. Formattable is a thin wrapper
- * class which interconverts between the primitive numeric types
- * (double, long, etc.) as well as UDate and UnicodeString.
- *
- * <p>Internally, a Formattable object is a union of primitive types.
- * As such, it can only store one flavor of data at a time. To
- * determine what flavor of data it contains, use the getType method.
- *
- * <p>As of ICU 3.0, Formattable may also wrap a UObject pointer,
- * which it owns. This allows an instance of any ICU class to be
- * encapsulated in a Formattable. For legacy reasons and for
- * efficiency, primitive numeric types are still stored directly
- * within a Formattable.
- *
- * <p>The Formattable class is not suitable for subclassing.
- */
-class U_I18N_API Formattable : public UObject {
-public:
- /**
- * This enum is only used to let callers distinguish between
- * the Formattable(UDate) constructor and the Formattable(double)
- * constructor; the compiler cannot distinguish the signatures,
- * since UDate is currently typedefed to be either double or long.
- * If UDate is changed later to be a bonafide class
- * or struct, then we no longer need this enum.
- * @stable ICU 2.4
- */
- enum ISDATE { kIsDate };
-
- /**
- * Default constructor
- * @stable ICU 2.4
- */
- Formattable(); // Type kLong, value 0
-
- /**
- * Creates a Formattable object with a UDate instance.
- * @param d the UDate instance.
- * @param flag the flag to indicate this is a date. Always set it to kIsDate
- * @stable ICU 2.0
- */
- Formattable(UDate d, ISDATE flag);
-
- /**
- * Creates a Formattable object with a double number.
- * @param d the double number.
- * @stable ICU 2.0
- */
- Formattable(double d);
-
- /**
- * Creates a Formattable object with a long number.
- * @param l the long number.
- * @stable ICU 2.0
- */
- Formattable(int32_t l);
-
- /**
- * Creates a Formattable object with an int64_t number
- * @param ll the int64_t number.
- * @stable ICU 2.8
- */
- Formattable(int64_t ll);
-
-#if !UCONFIG_NO_CONVERSION
- /**
- * Creates a Formattable object with a char string pointer.
- * Assumes that the char string is null terminated.
- * @param strToCopy the char string.
- * @stable ICU 2.0
- */
- Formattable(const char* strToCopy);
-#endif
-
- /**
- * Creates a Formattable object with a UnicodeString object to copy from.
- * @param strToCopy the UnicodeString string.
- * @stable ICU 2.0
- */
- Formattable(const UnicodeString& strToCopy);
-
- /**
- * Creates a Formattable object with a UnicodeString object to adopt from.
- * @param strToAdopt the UnicodeString string.
- * @stable ICU 2.0
- */
- Formattable(UnicodeString* strToAdopt);
-
- /**
- * Creates a Formattable object with an array of Formattable objects.
- * @param arrayToCopy the Formattable object array.
- * @param count the array count.
- * @stable ICU 2.0
- */
- Formattable(const Formattable* arrayToCopy, int32_t count);
-
- /**
- * Creates a Formattable object that adopts the given UObject.
- * @param objectToAdopt the UObject to set this object to
- * @stable ICU 3.0
- */
- Formattable(UObject* objectToAdopt);
-
- /**
- * Copy constructor.
- * @stable ICU 2.0
- */
- Formattable(const Formattable&);
-
- /**
- * Assignment operator.
- * @param rhs The Formattable object to copy into this object.
- * @stable ICU 2.0
- */
- Formattable& operator=(const Formattable &rhs);
-
- /**
- * Equality comparison.
- * @param other the object to be compared with.
- * @return TRUE if other are equal to this, FALSE otherwise.
- * @stable ICU 2.0
- */
- UBool operator==(const Formattable &other) const;
-
- /**
- * Equality operator.
- * @param other the object to be compared with.
- * @return TRUE if other are unequal to this, FALSE otherwise.
- * @stable ICU 2.0
- */
- UBool operator!=(const Formattable& other) const
- { return !operator==(other); }
-
- /**
- * Destructor.
- * @stable ICU 2.0
- */
- virtual ~Formattable();
-
- /**
- * Clone this object.
- * Clones can be used concurrently in multiple threads.
- * If an error occurs, then NULL is returned.
- * The caller must delete the clone.
- *
- * @return a clone of this object
- *
- * @see getDynamicClassID
- * @stable ICU 2.8
- */
- Formattable *clone() const;
-
- /**
- * Selector for flavor of data type contained within a
- * Formattable object. Formattable is a union of several
- * different types, and at any time contains exactly one type.
- * @stable ICU 2.4
- */
- enum Type {
- /**
- * Selector indicating a UDate value. Use getDate to retrieve
- * the value.
- * @stable ICU 2.4
- */
- kDate,
-
- /**
- * Selector indicating a double value. Use getDouble to
- * retrieve the value.
- * @stable ICU 2.4
- */
- kDouble,
-
- /**
- * Selector indicating a 32-bit integer value. Use getLong to
- * retrieve the value.
- * @stable ICU 2.4
- */
- kLong,
-
- /**
- * Selector indicating a UnicodeString value. Use getString
- * to retrieve the value.
- * @stable ICU 2.4
- */
- kString,
-
- /**
- * Selector indicating an array of Formattables. Use getArray
- * to retrieve the value.
- * @stable ICU 2.4
- */
- kArray,
-
- /**
- * Selector indicating a 64-bit integer value. Use getInt64
- * to retrieve the value.
- * @stable ICU 2.8
- */
- kInt64,
-
- /**
- * Selector indicating a UObject value. Use getObject to
- * retrieve the value.
- * @stable ICU 3.0
- */
- kObject
- };
-
- /**
- * Gets the data type of this Formattable object.
- * @return the data type of this Formattable object.
- * @stable ICU 2.0
- */
- Type getType(void) const;
-
- /**
- * Returns TRUE if the data type of this Formattable object
- * is kDouble, kLong, or kInt64.
- * @return TRUE if this is a pure numeric object
- * @stable ICU 3.0
- */
- UBool isNumeric() const;
-
- /**
- * Gets the double value of this object. If this object is not of type
- * kDouble then the result is undefined.
- * @return the double value of this object.
- * @stable ICU 2.0
- */
- double getDouble(void) const { return fValue.fDouble; }
-
- /**
- * Gets the double value of this object. If this object is of type
- * long or int64 then a casting conversion is peformed, with
- * possible loss of precision. If the type is kObject and the
- * object is a Measure, then the result of
- * getNumber().getDouble(status) is returned. If this object is
- * neither a numeric type nor a Measure, then 0 is returned and
- * the status is set to U_INVALID_FORMAT_ERROR.
- * @param status the error code
- * @return the double value of this object.
- * @stable ICU 3.0
- */
- double getDouble(UErrorCode& status) const;
-
- /**
- * Gets the long value of this object. If this object is not of type
- * kLong then the result is undefined.
- * @return the long value of this object.
- * @stable ICU 2.0
- */
- int32_t getLong(void) const { return (int32_t)fValue.fInt64; }
-
- /**
- * Gets the long value of this object. If the magnitude is too
- * large to fit in a long, then the maximum or minimum long value,
- * as appropriate, is returned and the status is set to
- * U_INVALID_FORMAT_ERROR. If this object is of type kInt64 and
- * it fits within a long, then no precision is lost. If it is of
- * type kDouble, then a casting conversion is peformed, with
- * truncation of any fractional part. If the type is kObject and
- * the object is a Measure, then the result of
- * getNumber().getLong(status) is returned. If this object is
- * neither a numeric type nor a Measure, then 0 is returned and
- * the status is set to U_INVALID_FORMAT_ERROR.
- * @param status the error code
- * @return the long value of this object.
- * @stable ICU 3.0
- */
- int32_t getLong(UErrorCode& status) const;
-
- /**
- * Gets the int64 value of this object. If this object is not of type
- * kInt64 then the result is undefined.
- * @return the int64 value of this object.
- * @stable ICU 2.8
- */
- int64_t getInt64(void) const { return fValue.fInt64; }
-
- /**
- * Gets the int64 value of this object. If this object is of type
- * kDouble and the magnitude is too large to fit in an int64, then
- * the maximum or minimum int64 value, as appropriate, is returned
- * and the status is set to U_INVALID_FORMAT_ERROR. If the
- * magnitude fits in an int64, then a casting conversion is
- * peformed, with truncation of any fractional part. If the type
- * is kObject and the object is a Measure, then the result of
- * getNumber().getDouble(status) is returned. If this object is
- * neither a numeric type nor a Measure, then 0 is returned and
- * the status is set to U_INVALID_FORMAT_ERROR.
- * @param status the error code
- * @return the int64 value of this object.
- * @stable ICU 3.0
- */
- int64_t getInt64(UErrorCode& status) const;
-
- /**
- * Gets the Date value of this object. If this object is not of type
- * kDate then the result is undefined.
- * @return the Date value of this object.
- * @stable ICU 2.0
- */
- UDate getDate() const { return fValue.fDate; }
-
- /**
- * Gets the Date value of this object. If the type is not a date,
- * status is set to U_INVALID_FORMAT_ERROR and the return value is
- * undefined.
- * @param status the error code.
- * @return the Date value of this object.
- * @stable ICU 3.0
- */
- UDate getDate(UErrorCode& status) const;
-
- /**
- * Gets the string value of this object. If this object is not of type
- * kString then the result is undefined.
- * @param result Output param to receive the Date value of this object.
- * @return A reference to 'result'.
- * @stable ICU 2.0
- */
- UnicodeString& getString(UnicodeString& result) const
- { result=*fValue.fString; return result; }
-
- /**
- * Gets the string value of this object. If the type is not a
- * string, status is set to U_INVALID_FORMAT_ERROR and a bogus
- * string is returned.
- * @param result Output param to receive the Date value of this object.
- * @param status the error code.
- * @return A reference to 'result'.
- * @stable ICU 3.0
- */
- UnicodeString& getString(UnicodeString& result, UErrorCode& status) const;
-
- /**
- * Gets a const reference to the string value of this object. If
- * this object is not of type kString then the result is
- * undefined.
- * @return a const reference to the string value of this object.
- * @stable ICU 2.0
- */
- inline const UnicodeString& getString(void) const;
-
- /**
- * Gets a const reference to the string value of this object. If
- * the type is not a string, status is set to
- * U_INVALID_FORMAT_ERROR and the result is a bogus string.
- * @param status the error code.
- * @return a const reference to the string value of this object.
- * @stable ICU 3.0
- */
- const UnicodeString& getString(UErrorCode& status) const;
-
- /**
- * Gets a reference to the string value of this object. If this
- * object is not of type kString then the result is undefined.
- * @return a reference to the string value of this object.
- * @stable ICU 2.0
- */
- inline UnicodeString& getString(void);
-
- /**
- * Gets a reference to the string value of this object. If the
- * type is not a string, status is set to U_INVALID_FORMAT_ERROR
- * and the result is a bogus string.
- * @param status the error code.
- * @return a reference to the string value of this object.
- * @stable ICU 3.0
- */
- UnicodeString& getString(UErrorCode& status);
-
- /**
- * Gets the array value and count of this object. If this object
- * is not of type kArray then the result is undefined.
- * @param count fill-in with the count of this object.
- * @return the array value of this object.
- * @stable ICU 2.0
- */
- const Formattable* getArray(int32_t& count) const
- { count=fValue.fArrayAndCount.fCount; return fValue.fArrayAndCount.fArray; }
-
- /**
- * Gets the array value and count of this object. If the type is
- * not an array, status is set to U_INVALID_FORMAT_ERROR, count is
- * set to 0, and the result is NULL.
- * @param count fill-in with the count of this object.
- * @param status the error code.
- * @return the array value of this object.
- * @stable ICU 3.0
- */
- const Formattable* getArray(int32_t& count, UErrorCode& status) const;
-
- /**
- * Accesses the specified element in the array value of this
- * Formattable object. If this object is not of type kArray then
- * the result is undefined.
- * @param index the specified index.
- * @return the accessed element in the array.
- * @stable ICU 2.0
- */
- Formattable& operator[](int32_t index) { return fValue.fArrayAndCount.fArray[index]; }
-
- /**
- * Returns a pointer to the UObject contained within this
- * formattable, or NULL if this object does not contain a UObject.
- * @return a UObject pointer, or NULL
- * @stable ICU 3.0
- */
- const UObject* getObject() const;
-
- /**
- * Sets the double value of this object and changes the type to
- * kDouble.
- * @param d the new double value to be set.
- * @stable ICU 2.0
- */
- void setDouble(double d);
-
- /**
- * Sets the long value of this object and changes the type to
- * kLong.
- * @param l the new long value to be set.
- * @stable ICU 2.0
- */
- void setLong(int32_t l);
-
- /**
- * Sets the int64 value of this object and changes the type to
- * kInt64.
- * @param ll the new int64 value to be set.
- * @stable ICU 2.8
- */
- void setInt64(int64_t ll);
-
- /**
- * Sets the Date value of this object and changes the type to
- * kDate.
- * @param d the new Date value to be set.
- * @stable ICU 2.0
- */
- void setDate(UDate d);
-
- /**
- * Sets the string value of this object and changes the type to
- * kString.
- * @param stringToCopy the new string value to be set.
- * @stable ICU 2.0
- */
- void setString(const UnicodeString& stringToCopy);
-
- /**
- * Sets the array value and count of this object and changes the
- * type to kArray.
- * @param array the array value.
- * @param count the number of array elements to be copied.
- * @stable ICU 2.0
- */
- void setArray(const Formattable* array, int32_t count);
-
- /**
- * Sets and adopts the string value and count of this object and
- * changes the type to kArray.
- * @param stringToAdopt the new string value to be adopted.
- * @stable ICU 2.0
- */
- void adoptString(UnicodeString* stringToAdopt);
-
- /**
- * Sets and adopts the array value and count of this object and
- * changes the type to kArray.
- * @stable ICU 2.0
- */
- void adoptArray(Formattable* array, int32_t count);
-
- /**
- * Sets and adopts the UObject value of this object and changes
- * the type to kObject. After this call, the caller must not
- * delete the given object.
- * @param objectToAdopt the UObject value to be adopted
- * @stable ICU 3.0
- */
- void adoptObject(UObject* objectToAdopt);
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @stable ICU 2.2
- */
- virtual UClassID getDynamicClassID() const;
-
- /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @stable ICU 2.2
- */
- static UClassID U_EXPORT2 getStaticClassID();
-
- /**
- * Deprecated variant of getLong(UErrorCode&).
- * @param status the error code
- * @return the long value of this object.
- * @deprecated ICU 3.0 use getLong(UErrorCode&) instead
- */
- inline int32_t getLong(UErrorCode* status) const;
-
-private:
- /**
- * Cleans up the memory for unwanted values. For example, the adopted
- * string or array objects.
- */
- void dispose(void);
-
- UnicodeString* getBogus() const;
-
- union {
- UObject* fObject;
- UnicodeString* fString;
- double fDouble;
- int64_t fInt64;
- UDate fDate;
- struct {
- Formattable* fArray;
- int32_t fCount;
- } fArrayAndCount;
- } fValue;
-
- Type fType;
- UnicodeString fBogus; // Bogus string when it's needed.
-};
-
-inline UDate Formattable::getDate(UErrorCode& status) const {
- if (fType != kDate) {
- if (U_SUCCESS(status)) {
- status = U_INVALID_FORMAT_ERROR;
- }
- return 0;
- }
- return fValue.fDate;
-}
-
-inline const UnicodeString& Formattable::getString(void) const {
- return *fValue.fString;
-}
-
-inline UnicodeString& Formattable::getString(void) {
- return *fValue.fString;
-}
-
-inline int32_t Formattable::getLong(UErrorCode* status) const {
- return getLong(*status);
-}
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
-
-#endif //_FMTABLE
-//eof
-
http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/format.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/format.h b/apps/couch_collate/platform/osx/icu/unicode/format.h
deleted file mode 100644
index 7f17b52..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/format.h
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
-********************************************************************************
-* Copyright (C) 1997-2006, International Business Machines Corporation and others.
-* All Rights Reserved.
-********************************************************************************
-*
-* File FORMAT.H
-*
-* Modification History:
-*
-* Date Name Description
-* 02/19/97 aliu Converted from java.
-* 03/17/97 clhuang Updated per C++ implementation.
-* 03/27/97 helena Updated to pass the simple test after code review.
-********************************************************************************
-*/
-// *****************************************************************************
-// This file was generated from the java source file Format.java
-// *****************************************************************************
-
-#ifndef FORMAT_H
-#define FORMAT_H
-
-
-#include "unicode/utypes.h"
-
-/**
- * \file
- * \brief C++ API: Base class for all formats.
- */
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/unistr.h"
-#include "unicode/fmtable.h"
-#include "unicode/fieldpos.h"
-#include "unicode/parsepos.h"
-#include "unicode/parseerr.h"
-#include "unicode/locid.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * Base class for all formats. This is an abstract base class which
- * specifies the protocol for classes which convert other objects or
- * values, such as numeric values and dates, and their string
- * representations. In some cases these representations may be
- * localized or contain localized characters or strings. For example,
- * a numeric formatter such as DecimalFormat may convert a numeric
- * value such as 12345 to the string "$12,345". It may also parse
- * the string back into a numeric value. A date and time formatter
- * like SimpleDateFormat may represent a specific date, encoded
- * numerically, as a string such as "Wednesday, February 26, 1997 AD".
- * <P>
- * Many of the concrete subclasses of Format employ the notion of
- * a pattern. A pattern is a string representation of the rules which
- * govern the interconversion between values and strings. For example,
- * a DecimalFormat object may be associated with the pattern
- * "$#,##0.00;($#,##0.00)", which is a common US English format for
- * currency values, yielding strings such as "$1,234.45" for 1234.45,
- * and "($987.65)" for 987.6543. The specific syntax of a pattern
- * is defined by each subclass.
- * <P>
- * Even though many subclasses use patterns, the notion of a pattern
- * is not inherent to Format classes in general, and is not part of
- * the explicit base class protocol.
- * <P>
- * Two complex formatting classes bear mentioning. These are
- * MessageFormat and ChoiceFormat. ChoiceFormat is a subclass of
- * NumberFormat which allows the user to format different number ranges
- * as strings. For instance, 0 may be represented as "no files", 1 as
- * "one file", and any number greater than 1 as "many files".
- * MessageFormat is a formatter which utilizes other Format objects to
- * format a string containing with multiple values. For instance,
- * A MessageFormat object might produce the string "There are no files
- * on the disk MyDisk on February 27, 1997." given the arguments 0,
- * "MyDisk", and the date value of 2/27/97. See the ChoiceFormat
- * and MessageFormat headers for further information.
- * <P>
- * If formatting is unsuccessful, a failing UErrorCode is returned when
- * the Format cannot format the type of object, otherwise if there is
- * something illformed about the the Unicode replacement character
- * 0xFFFD is returned.
- * <P>
- * If there is no match when parsing, a parse failure UErrorCode is
- * retured for methods which take no ParsePosition. For the method
- * that takes a ParsePosition, the index parameter is left unchanged.
- * <P>
- * <em>User subclasses are not supported.</em> While clients may write
- * subclasses, such code will not necessarily work and will not be
- * guaranteed to work stably from release to release.
- */
-class U_I18N_API Format : public UObject {
-public:
-
- /** Destructor
- * @stable ICU 2.4
- */
- virtual ~Format();
-
- /**
- * Return true if the given Format objects are semantically equal.
- * Objects of different subclasses are considered unequal.
- * @param other the object to be compared with.
- * @return Return true if the given Format objects are semantically equal.
- * Objects of different subclasses are considered unequal.
- * @stable ICU 2.0
- */
- virtual UBool operator==(const Format& other) const = 0;
-
- /**
- * Return true if the given Format objects are not semantically
- * equal.
- * @param other the object to be compared with.
- * @return Return true if the given Format objects are not semantically.
- * @stable ICU 2.0
- */
- UBool operator!=(const Format& other) const { return !operator==(other); }
-
- /**
- * Clone this object polymorphically. The caller is responsible
- * for deleting the result when done.
- * @return A copy of the object
- * @stable ICU 2.0
- */
- virtual Format* clone() const = 0;
-
- /**
- * Formats an object to produce a string.
- *
- * @param obj The object to format.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param status Output parameter filled in with success or failure status.
- * @return Reference to 'appendTo' parameter.
- * @stable ICU 2.0
- */
- UnicodeString& format(const Formattable& obj,
- UnicodeString& appendTo,
- UErrorCode& status) const;
-
- /**
- * Format an object to produce a string. This is a pure virtual method which
- * subclasses must implement. This method allows polymorphic formatting
- * of Formattable objects. If a subclass of Format receives a Formattable
- * object type it doesn't handle (e.g., if a numeric Formattable is passed
- * to a DateFormat object) then it returns a failing UErrorCode.
- *
- * @param obj The object to format.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param pos On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- * @param status Output param filled with success/failure status.
- * @return Reference to 'appendTo' parameter.
- * @stable ICU 2.0
- */
- virtual UnicodeString& format(const Formattable& obj,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode& status) const = 0;
-
- /**
- * Parse a string to produce an object. This is a pure virtual
- * method which subclasses must implement. This method allows
- * polymorphic parsing of strings into Formattable objects.
- * <P>
- * Before calling, set parse_pos.index to the offset you want to
- * start parsing at in the source. After calling, parse_pos.index
- * is the end of the text you parsed. If error occurs, index is
- * unchanged.
- * <P>
- * When parsing, leading whitespace is discarded (with successful
- * parse), while trailing whitespace is left as is.
- * <P>
- * Example:
- * <P>
- * Parsing "_12_xy" (where _ represents a space) for a number,
- * with index == 0 will result in the number 12, with
- * parse_pos.index updated to 3 (just before the second space).
- * Parsing a second time will result in a failing UErrorCode since
- * "xy" is not a number, and leave index at 3.
- * <P>
- * Subclasses will typically supply specific parse methods that
- * return different types of values. Since methods can't overload
- * on return types, these will typically be named "parse", while
- * this polymorphic method will always be called parseObject. Any
- * parse method that does not take a parse_pos should set status
- * to an error value when no text in the required format is at the
- * start position.
- *
- * @param source The string to be parsed into an object.
- * @param result Formattable to be set to the parse result.
- * If parse fails, return contents are undefined.
- * @param parse_pos The position to start parsing at. Upon return
- * this param is set to the position after the
- * last character successfully parsed. If the
- * source is not parsed successfully, this param
- * will remain unchanged.
- * @stable ICU 2.0
- */
- virtual void parseObject(const UnicodeString& source,
- Formattable& result,
- ParsePosition& parse_pos) const = 0;
-
- /**
- * Parses a string to produce an object. This is a convenience method
- * which calls the pure virtual parseObject() method, and returns a
- * failure UErrorCode if the ParsePosition indicates failure.
- *
- * @param source The string to be parsed into an object.
- * @param result Formattable to be set to the parse result.
- * If parse fails, return contents are undefined.
- * @param status Output param to be filled with success/failure
- * result code.
- * @stable ICU 2.0
- */
- void parseObject(const UnicodeString& source,
- Formattable& result,
- UErrorCode& status) const;
-
- /**
- * Returns a unique class ID POLYMORPHICALLY. Pure virtual method.
- * This method is to implement a simple version of RTTI, since not all
- * C++ compilers support genuine RTTI. Polymorphic operator==() and
- * clone() methods call this method.
- * Concrete subclasses of Format must implement getDynamicClassID()
- *
- * @return The class ID for this object. All objects of a
- * given class have the same class ID. Objects of
- * other classes have different class IDs.
- * @stable ICU 2.0
- */
- virtual UClassID getDynamicClassID() const = 0;
-
- /** Get the locale for this format object. You can choose between valid and actual locale.
- * @param type type of the locale we're looking for (valid or actual)
- * @param status error code for the operation
- * @return the locale
- * @stable ICU 2.8
- */
- Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const;
-
- /** Get the locale for this format object. You can choose between valid and actual locale.
- * @param type type of the locale we're looking for (valid or actual)
- * @param status error code for the operation
- * @return the locale
- * @internal
- */
- const char* getLocaleID(ULocDataLocaleType type, UErrorCode &status) const;
-
- protected:
- /** @stable ICU 2.8 */
- void setLocaleIDs(const char* valid, const char* actual);
-
-protected:
- /**
- * Default constructor for subclass use only. Does nothing.
- * @stable ICU 2.0
- */
- Format();
-
- /**
- * @stable ICU 2.0
- */
- Format(const Format&); // Does nothing; for subclasses only
-
- /**
- * @stable ICU 2.0
- */
- Format& operator=(const Format&); // Does nothing; for subclasses
-
-
- /**
- * Simple function for initializing a UParseError from a UnicodeString.
- *
- * @param pattern The pattern to copy into the parseError
- * @param pos The position in pattern where the error occured
- * @param parseError The UParseError object to fill in
- * @stable ICU 2.4
- */
- static void syntaxError(const UnicodeString& pattern,
- int32_t pos,
- UParseError& parseError);
-
- private:
- char actualLocale[ULOC_FULLNAME_CAPACITY];
- char validLocale[ULOC_FULLNAME_CAPACITY];
-};
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
-
-#endif // _FORMAT
-//eof