2017-01-20 00:20:31 +00:00
|
|
|
// © 2016 and later: Unicode, Inc. and others.
|
2016-06-15 18:58:17 +00:00
|
|
|
// License & terms of use: http://www.unicode.org/copyright.html
|
2011-04-25 20:47:32 +00:00
|
|
|
/*
|
|
|
|
*******************************************************************************
|
2016-05-31 21:45:07 +00:00
|
|
|
* Copyright (C) 2011, International Business Machines
|
|
|
|
* Corporation and others. All Rights Reserved.
|
2011-04-25 20:47:32 +00:00
|
|
|
*******************************************************************************
|
|
|
|
* file name: messageimpl.h
|
|
|
|
* encoding: US-ASCII
|
|
|
|
* 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__
|