]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/common/unicode/messagepattern.h
ICU-511.32.tar.gz
[apple/icu.git] / icuSources / common / unicode / messagepattern.h
index 84af565fb59e58311b8dde5006f97eeeb7844790..01e1629944933ad780f823bd47c47a487f656a60 100644 (file)
@@ -1,6 +1,6 @@
 /*
 *******************************************************************************
-*   Copyright (C) 2011-2012, International Business Machines
+*   Copyright (C) 2011-2013, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  messagepattern.h
@@ -233,7 +233,7 @@ enum UMessagePatternArgType {
      */
     UMSGPAT_ARG_TYPE_CHOICE,
     /**
-     * The argument is a PluralFormat with an optional ARG_INT or ARG_DOUBLE offset
+     * The argument is a cardinal-number PluralFormat with an optional ARG_INT or ARG_DOUBLE offset
      * (e.g., offset:1)
      * and one or more (ARG_SELECTOR [explicit-value] message) tuples.
      * If the selector has an explicit value (e.g., =2), then
@@ -246,13 +246,31 @@ enum UMessagePatternArgType {
      * The argument is a SelectFormat with one or more (ARG_SELECTOR, message) pairs.
      * @stable ICU 4.8
      */
-    UMSGPAT_ARG_TYPE_SELECT
+    UMSGPAT_ARG_TYPE_SELECT,
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * The argument is an ordinal-number PluralFormat
+     * with the same style parts sequence and semantics as UMSGPAT_ARG_TYPE_PLURAL.
+     * @draft ICU 50
+     */
+    UMSGPAT_ARG_TYPE_SELECTORDINAL
+#endif /* U_HIDE_DRAFT_API */
 };
 /**
  * @stable ICU 4.8
  */
 typedef enum UMessagePatternArgType UMessagePatternArgType;
 
+#ifndef U_HIDE_DRAFT_API
+/**
+ * Returns TRUE if the argument type has a plural style part sequence and semantics,
+ * for example UMSGPAT_ARG_TYPE_PLURAL and UMSGPAT_ARG_TYPE_SELECTORDINAL.
+ * @draft ICU 50
+ */
+#define UMSGPAT_ARG_TYPE_HAS_PLURAL_STYLE(argType) \
+    ((argType)==UMSGPAT_ARG_TYPE_PLURAL || (argType)==UMSGPAT_ARG_TYPE_SELECTORDINAL)
+#endif /* U_HIDE_DRAFT_API */
+
 enum {
     /**
      * Return value from MessagePattern.validateArgumentName() for when
@@ -878,6 +896,8 @@ private:
 
     UBool isSelect(int32_t index);
 
+    UBool isOrdinal(int32_t index);
+
     /**
      * @return TRUE if we are inside a MessageFormat (sub-)pattern,
      *         as opposed to inside a top-level choice/plural/select pattern.
@@ -901,9 +921,6 @@ private:
 
     void setParseError(UParseError *parseError, int32_t index);
 
-    // No ICU "poor man's RTTI" for this class nor its subclasses.
-    virtual UClassID getDynamicClassID() const;
-
     UBool init(UErrorCode &errorCode);
     UBool copyStorage(const MessagePattern &other, UErrorCode &errorCode);