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