|
1 /* |
|
2 ******************************************************************************* |
|
3 * Copyright (C) 2011, International Business Machines |
|
4 * Corporation and others. All Rights Reserved. |
|
5 ******************************************************************************* |
|
6 * file name: messageimpl.h |
|
7 * encoding: US-ASCII |
|
8 * tab size: 8 (not used) |
|
9 * indentation:4 |
|
10 * |
|
11 * created on: 2011apr04 |
|
12 * created by: Markus W. Scherer |
|
13 */ |
|
14 |
|
15 #ifndef __MESSAGEIMPL_H__ |
|
16 #define __MESSAGEIMPL_H__ |
|
17 |
|
18 #include "unicode/utypes.h" |
|
19 |
|
20 #if !UCONFIG_NO_FORMATTING |
|
21 |
|
22 #include "unicode/messagepattern.h" |
|
23 |
|
24 U_NAMESPACE_BEGIN |
|
25 |
|
26 /** |
|
27 * Helper functions for use of MessagePattern. |
|
28 * In Java, these are package-private methods in MessagePattern itself. |
|
29 * In C++, they are declared here and implemented in messagepattern.cpp. |
|
30 */ |
|
31 class U_COMMON_API MessageImpl { |
|
32 public: |
|
33 /** |
|
34 * @return TRUE if getApostropheMode()==UMSGPAT_APOS_DOUBLE_REQUIRED |
|
35 */ |
|
36 static UBool jdkAposMode(const MessagePattern &msgPattern) { |
|
37 return msgPattern.getApostropheMode()==UMSGPAT_APOS_DOUBLE_REQUIRED; |
|
38 } |
|
39 |
|
40 /** |
|
41 * Appends the s[start, limit[ substring to sb, but with only half of the apostrophes |
|
42 * according to JDK pattern behavior. |
|
43 */ |
|
44 static void appendReducedApostrophes(const UnicodeString &s, int32_t start, int32_t limit, |
|
45 UnicodeString &sb); |
|
46 |
|
47 /** |
|
48 * Appends the sub-message to the result string. |
|
49 * Omits SKIP_SYNTAX and appends whole arguments using appendReducedApostrophes(). |
|
50 */ |
|
51 static UnicodeString &appendSubMessageWithoutSkipSyntax(const MessagePattern &msgPattern, |
|
52 int32_t msgStart, |
|
53 UnicodeString &result); |
|
54 |
|
55 private: |
|
56 MessageImpl(); // no constructor: all static methods |
|
57 }; |
|
58 |
|
59 U_NAMESPACE_END |
|
60 |
|
61 #endif // !UCONFIG_NO_FORMATTING |
|
62 |
|
63 #endif // __MESSAGEIMPL_H__ |