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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/polymer/lib/src/paths.dart ('k') | pkg/polymer/lib/src/utils.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/polymer/lib/src/summary.dart
diff --git a/pkg/polymer/lib/src/summary.dart b/pkg/polymer/lib/src/summary.dart
new file mode 100644
index 0000000000000000000000000000000000000000..841870ae0c92bc55e510d98170d7b8ec81db5afc
--- /dev/null
+++ b/pkg/polymer/lib/src/summary.dart
@@ -0,0 +1,88 @@
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/**
+ * Summary information for components and libraries.
+ *
+ * These classes are used for modular compilation. Summaries are a subset of the
+ * information collected by Info objects (see `info.dart`). When we are
+ * compiling a single file, the information extracted from that file is stored
+ * as info objects, but any information that is needed from other files (like
+ * imported components) is stored as a summary.
+ */
+library polymer.src.summary;
+
+import 'package:source_maps/span.dart' show Span;
+
+// TODO(sigmund): consider moving UrlInfo out of info.dart
+import 'info.dart' show UrlInfo;
+
+/**
+ * Summary information from other library-like objects, which includes HTML
+ * components and dart libraries).
+ */
+class LibrarySummary {
+ /** Path to the sources represented by this summary. */
+ final UrlInfo dartCodeUrl;
+
+ /** Name given to this source after it was compiled. */
+ final String outputFilename;
+
+ LibrarySummary(this.dartCodeUrl, this.outputFilename);
+}
+
+/** Summary information for an HTML file that defines custom elements. */
+class HtmlFileSummary extends LibrarySummary {
+ /**
+ * Summary of each component defined either explicitly the HTML file or
+ * included transitively from `<link rel="import">` tags.
+ */
+ final Map<String, ComponentSummary> components;
+
+ HtmlFileSummary(UrlInfo dartCodeUrl, String outputFilename, this.components)
+ : super(dartCodeUrl, outputFilename);
+}
+
+/** Information about a web component definition. */
+class ComponentSummary extends LibrarySummary {
+ /** The component tag name, defined with the `name` attribute on `element`. */
+ final String tagName;
+
+ /**
+ * The tag name that this component extends, defined with the `extends`
+ * attribute on `element`.
+ */
+ final String extendsTag;
+
+ /**
+ * The Dart class containing the component's behavior, derived from tagName or
+ * defined in the `constructor` attribute on `element`.
+ */
+ final String className;
+
+ /** Summary of the base component, if any. */
+ final ComponentSummary extendsComponent;
+
+ /**
+ * True if [tagName] was defined by more than one component. Used internally
+ * by the analyzer. Conflicting component will be skipped by the compiler.
+ */
+ bool hasConflict;
+
+ /** Original span where this component is declared. */
+ final Span sourceSpan;
+
+ ComponentSummary(UrlInfo dartCodeUrl, String outputFilename,
+ this.tagName, this.extendsTag, this.className, this.extendsComponent,
+ this.sourceSpan, [this.hasConflict = false])
+ : super(dartCodeUrl, outputFilename);
+
+ /**
+ * Gets the HTML tag extended by the base of the component hierarchy.
+ * Equivalent to [extendsTag] if this inherits directly from an HTML element,
+ * in other words, if [extendsComponent] is null.
+ */
+ String get baseExtendsTag =>
+ extendsComponent == null ? extendsTag : extendsComponent.baseExtendsTag;
+}
« 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