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