14da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org/* 24da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org******************************************************************************* 34da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org* Copyright (C) 2011, International Business Machines 44da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org* Corporation and others. All Rights Reserved. 54da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org******************************************************************************* 64da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org* file name: messageimpl.h 74da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org* encoding: US-ASCII 84da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org* tab size: 8 (not used) 94da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org* indentation:4 104da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org* 114da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org* created on: 2011apr04 124da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org* created by: Markus W. Scherer 134da06ab3351f2a96f9216d96106db33a77b19644schenney@chromium.org*/ 1445cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org 1545cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org#ifndef __MESSAGEIMPL_H__ 1645cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org#define __MESSAGEIMPL_H__ 1745cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org 1845cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org#include "unicode/utypes.h" 19a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org 20a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org#if !UCONFIG_NO_FORMATTING 21a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org 22a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org#include "unicode/messagepattern.h" 2345cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org 2445cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.orgU_NAMESPACE_BEGIN 2545cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org 26d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com/** 27f539318f0d3dba743ec1886d5d9df0fb1be628a1tfarina * Helper functions for use of MessagePattern. 28d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com * In Java, these are package-private methods in MessagePattern itself. 2945cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org * In C++, they are declared here and implemented in messagepattern.cpp. 3045cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org */ 3145cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.orgclass U_COMMON_API MessageImpl { 3245cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.orgpublic: 3345cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org /** 3445cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org * @return TRUE if getApostropheMode()==UMSGPAT_APOS_DOUBLE_REQUIRED 3545cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org */ 3645cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org static UBool jdkAposMode(const MessagePattern &msgPattern) { 3745cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org return msgPattern.getApostropheMode()==UMSGPAT_APOS_DOUBLE_REQUIRED; 3845cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org } 3945cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org 4045cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org /** 4145cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org * Appends the s[start, limit[ substring to sb, but with only half of the apostrophes 4245cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org * according to JDK pattern behavior. 4345cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org */ 4445cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org static void appendReducedApostrophes(const UnicodeString &s, int32_t start, int32_t limit, 45d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com UnicodeString &sb); 4645cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org 4745cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org /** 4845cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org * Appends the sub-message to the result string. 4945cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org * Omits SKIP_SYNTAX and appends whole arguments using appendReducedApostrophes(). 5045cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org */ 5145cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org static UnicodeString &appendSubMessageWithoutSkipSyntax(const MessagePattern &msgPattern, 5245cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org int32_t msgStart, 5345cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org UnicodeString &result); 5445cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org 5545cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.orgprivate: 5645cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org MessageImpl(); // no constructor: all static methods 5745cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org}; 5845cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org 5945cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.orgU_NAMESPACE_END 6045cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org 6145cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org#endif // !UCONFIG_NO_FORMATTING 6245cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org 6345cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org#endif // __MESSAGEIMPL_H__ 6445cbfdd53533693927ac13d44e42104269ce7a9eschenney@chromium.org