Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: intl/lib/src/intl_helpers.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « intl/lib/src/intl/number_format.dart ('k') | intl/lib/src/intl_message.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 /**
6 * A library for general helper code associated with the intl library
7 * rather than confined to specific parts of it.
8 */
9
10 library intl_helpers;
11
12 import 'dart:async';
13
14 /**
15 * This is used as a marker for a locale data map that hasn't been initialized,
16 * and will throw an exception on any usage that isn't the fallback
17 * patterns/symbols provided.
18 */
19 class UninitializedLocaleData<F> {
20 final String message;
21 final F fallbackData;
22 const UninitializedLocaleData(this.message, this.fallbackData);
23
24 operator [](String key) =>
25 (key == 'en_US') ? fallbackData : _throwException();
26
27 String lookupMessage(String message_str, [final String desc = '',
28 final Map examples = const {}, String locale, String name,
29 List<String> args, String meaning]) => message_str;
30
31 List get keys => _throwException();
32
33 bool containsKey(String key) => (key == 'en_US') ? true : _throwException();
34
35 _throwException() {
36 throw new LocaleDataException("Locale data has not been initialized"
37 ", call $message.");
38 }
39 }
40
41 class LocaleDataException implements Exception {
42 final String message;
43 LocaleDataException(this.message);
44 toString() => "LocaleDataException: $message";
45 }
46
47 /**
48 * An abstract superclass for data readers to keep the type system happy.
49 */
50 abstract class LocaleDataReader {
51 Future read(String locale);
52 }
53
54 /**
55 * The internal mechanism for looking up messages. We expect this to be set
56 * by the implementing package so that we're not dependent on its
57 * implementation.
58 */
59 var messageLookup =
60 const UninitializedLocaleData('initializeMessages(<locale>)', null);
61
62 /**
63 * Initialize the message lookup mechanism. This is for internal use only.
64 * User applications should import `message_lookup_by_library.dart` and call
65 * `initializeMessages`
66 */
67 void initializeInternalMessageLookup(Function lookupFunction) {
68 if (messageLookup is UninitializedLocaleData) {
69 messageLookup = lookupFunction();
70 }
71 }
OLDNEW
« no previous file with comments | « intl/lib/src/intl/number_format.dart ('k') | intl/lib/src/intl_message.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698