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

Side by Side Diff: pkg/polymer/lib/src/summary.dart

Issue 23224003: move polymer.dart into dart svn (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: add --deploy to todomvc sample Created 7 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « pkg/polymer/lib/src/paths.dart ('k') | pkg/polymer/lib/src/utils.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 * Summary information for components and libraries.
7 *
8 * These classes are used for modular compilation. Summaries are a subset of the
9 * information collected by Info objects (see `info.dart`). When we are
10 * compiling a single file, the information extracted from that file is stored
11 * as info objects, but any information that is needed from other files (like
12 * imported components) is stored as a summary.
13 */
14 library polymer.src.summary;
15
16 import 'package:source_maps/span.dart' show Span;
17
18 // TODO(sigmund): consider moving UrlInfo out of info.dart
19 import 'info.dart' show UrlInfo;
20
21 /**
22 * Summary information from other library-like objects, which includes HTML
23 * components and dart libraries).
24 */
25 class LibrarySummary {
26 /** Path to the sources represented by this summary. */
27 final UrlInfo dartCodeUrl;
28
29 /** Name given to this source after it was compiled. */
30 final String outputFilename;
31
32 LibrarySummary(this.dartCodeUrl, this.outputFilename);
33 }
34
35 /** Summary information for an HTML file that defines custom elements. */
36 class HtmlFileSummary extends LibrarySummary {
37 /**
38 * Summary of each component defined either explicitly the HTML file or
39 * included transitively from `<link rel="import">` tags.
40 */
41 final Map<String, ComponentSummary> components;
42
43 HtmlFileSummary(UrlInfo dartCodeUrl, String outputFilename, this.components)
44 : super(dartCodeUrl, outputFilename);
45 }
46
47 /** Information about a web component definition. */
48 class ComponentSummary extends LibrarySummary {
49 /** The component tag name, defined with the `name` attribute on `element`. */
50 final String tagName;
51
52 /**
53 * The tag name that this component extends, defined with the `extends`
54 * attribute on `element`.
55 */
56 final String extendsTag;
57
58 /**
59 * The Dart class containing the component's behavior, derived from tagName or
60 * defined in the `constructor` attribute on `element`.
61 */
62 final String className;
63
64 /** Summary of the base component, if any. */
65 final ComponentSummary extendsComponent;
66
67 /**
68 * True if [tagName] was defined by more than one component. Used internally
69 * by the analyzer. Conflicting component will be skipped by the compiler.
70 */
71 bool hasConflict;
72
73 /** Original span where this component is declared. */
74 final Span sourceSpan;
75
76 ComponentSummary(UrlInfo dartCodeUrl, String outputFilename,
77 this.tagName, this.extendsTag, this.className, this.extendsComponent,
78 this.sourceSpan, [this.hasConflict = false])
79 : super(dartCodeUrl, outputFilename);
80
81 /**
82 * Gets the HTML tag extended by the base of the component hierarchy.
83 * Equivalent to [extendsTag] if this inherits directly from an HTML element,
84 * in other words, if [extendsComponent] is null.
85 */
86 String get baseExtendsTag =>
87 extendsComponent == null ? extendsTag : extendsComponent.baseExtendsTag;
88 }
OLDNEW
« no previous file with comments | « pkg/polymer/lib/src/paths.dart ('k') | pkg/polymer/lib/src/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698