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

Side by Side Diff: packages/charted/lib/core/utils/namespace.dart

Issue 1521693002: Roll Observatory deps (charted -> ^0.3.0) (Closed) Base URL: https://chromium.googlesource.com/external/github.com/dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years 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
OLDNEW
1 // 1 //
2 // Copyright 2014 Google Inc. All rights reserved. 2 // Copyright 2014 Google Inc. All rights reserved.
3 // 3 //
4 // Use of this source code is governed by a BSD-style 4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file or at 5 // license that can be found in the LICENSE file or at
6 // https://developers.google.com/open-source/licenses/bsd 6 // https://developers.google.com/open-source/licenses/bsd
7 // 7 //
8 8
9 part of charted.core.utils; 9 part of charted.core.utils;
10 10
11 /// Basic namespace handing for Charted - includes utilities to 11 /// Basic namespace handing for Charted - includes utilities to
12 /// parse the namespace prefixes and to create DOM elements using a 12 /// parse the namespace prefixes and to create DOM elements using a
13 /// namespace. 13 /// namespace.
14 class Namespace { 14 class Namespace {
15 /// Supported namespace prefixes mapped to their URIs. 15 /// Supported namespace prefixes mapped to their URIs.
16 static const Map<String,String> NS_PREFIXES = const { 16 static const Map<String, String> NS_PREFIXES = const {
17 "svg": "http://www.w3.org/2000/svg", 17 "svg": "http://www.w3.org/2000/svg",
18 "xhtml": "http://www.w3.org/1999/xhtml", 18 "xhtml": "http://www.w3.org/1999/xhtml",
19 "xlink": "http://www.w3.org/1999/xlink", 19 "xlink": "http://www.w3.org/1999/xlink",
20 "xml": "http://www.w3.org/XML/1998/namespace", 20 "xml": "http://www.w3.org/XML/1998/namespace",
21 "xmlns": "http://www.w3.org/2000/xmlns/" 21 "xmlns": "http://www.w3.org/2000/xmlns/"
22 }; 22 };
23 23
24 /// Create an element from [tag]. If tag is prefixed with a 24 /// Create an element from [tag]. If tag is prefixed with a
25 /// supported namespace prefix, the created element will 25 /// supported namespace prefix, the created element will
26 /// have the namespaceUri set to the correct URI. 26 /// have the namespaceUri set to the correct URI.
27 static Element createChildElement(String tag, Element parent) { 27 static Element createChildElement(String tag, Element parent) {
28 var separatorIndex = tag.indexOf(':'); 28 var separatorIndex = tag.indexOf(':');
29 if (separatorIndex == -1 && parent != null) { 29 if (separatorIndex == -1 && parent != null) {
30 return parent.ownerDocument.createElementNS(parent.namespaceUri, tag); 30 return parent.ownerDocument.createElementNS(parent.namespaceUri, tag);
31 } 31 }
32 Namespace parsed = new Namespace._internal(tag, separatorIndex); 32 Namespace parsed = new Namespace._internal(tag, separatorIndex);
33 return parsed.namespaceUri == null ? 33 return parsed.namespaceUri == null
34 parent.ownerDocument.createElementNS(parent.namespaceUri, tag) : 34 ? parent.ownerDocument.createElementNS(parent.namespaceUri, tag)
35 parent.ownerDocument.createElementNS(parsed.namespaceUri, 35 : parent.ownerDocument
36 parsed.localName); 36 .createElementNS(parsed.namespaceUri, parsed.localName);
37 } 37 }
38 38
39 /// Local part of the Element's tag name. 39 /// Local part of the Element's tag name.
40 String localName; 40 String localName;
41 41
42 /// Name space URI for the selected namespace. 42 /// Name space URI for the selected namespace.
43 String namespaceUri; 43 String namespaceUri;
44 44
45 /// Parses a tag for namespace prefix and local name. 45 /// Parses a tag for namespace prefix and local name.
46 /// If a known namespace prefix is found, sets the namespaceUri property 46 /// If a known namespace prefix is found, sets the namespaceUri property
47 /// to the URI of the namespace. 47 /// to the URI of the namespace.
48 factory Namespace(String tagName) => 48 factory Namespace(String tagName) =>
49 new Namespace._internal(tagName, tagName.indexOf(':')); 49 new Namespace._internal(tagName, tagName.indexOf(':'));
50 50
51 /// Utility for use by createChildElement and factory constructor. 51 /// Utility for use by createChildElement and factory constructor.
52 Namespace._internal(String tagName, int separatorIdx) { 52 Namespace._internal(String tagName, int separatorIdx) {
53 String prefix = tagName; 53 String prefix = tagName;
54 if (separatorIdx >= 0) { 54 if (separatorIdx >= 0) {
55 prefix = tagName.substring(0, separatorIdx); 55 prefix = tagName.substring(0, separatorIdx);
56 localName = tagName.substring(separatorIdx + 1); 56 localName = tagName.substring(separatorIdx + 1);
57 } 57 }
58 58
59 if (NS_PREFIXES.containsKey(prefix)) { 59 if (NS_PREFIXES.containsKey(prefix)) {
60 namespaceUri = NS_PREFIXES[prefix]; 60 namespaceUri = NS_PREFIXES[prefix];
61 } else { 61 } else {
62 localName = tagName; 62 localName = tagName;
63 } 63 }
64 } 64 }
65 } 65 }
OLDNEW
« no previous file with comments | « packages/charted/lib/core/utils/lists.dart ('k') | packages/charted/lib/core/utils/object_factory.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698