summaryrefslogtreecommitdiffstats
path: root/intl/icu/source/common/messageimpl.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /intl/icu/source/common/messageimpl.h
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'intl/icu/source/common/messageimpl.h')
-rw-r--r--intl/icu/source/common/messageimpl.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/intl/icu/source/common/messageimpl.h b/intl/icu/source/common/messageimpl.h
new file mode 100644
index 0000000000..061df9189d
--- /dev/null
+++ b/intl/icu/source/common/messageimpl.h
@@ -0,0 +1,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() = delete; // no constructor: all static methods
+};
+
+U_NAMESPACE_END
+
+#endif // !UCONFIG_NO_FORMATTING
+
+#endif // __MESSAGEIMPL_H__