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

Unified Diff: sdk/lib/_internal/pub/lib/src/barback/excluding_transformer.dart

Issue 328033002: Move include/exclude calculations to the TransformerId class. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: code review Created 6 years, 6 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
Index: sdk/lib/_internal/pub/lib/src/barback/excluding_transformer.dart
diff --git a/sdk/lib/_internal/pub/lib/src/barback/excluding_transformer.dart b/sdk/lib/_internal/pub/lib/src/barback/excluding_transformer.dart
index 1892f97a13d1b7b6a1550596d4835a6c6b64d5a8..2ba10fe4c23a493e58e604924b86a5d872416808 100644
--- a/sdk/lib/_internal/pub/lib/src/barback/excluding_transformer.dart
+++ b/sdk/lib/_internal/pub/lib/src/barback/excluding_transformer.dart
@@ -8,56 +8,38 @@ import 'dart:async';
import 'package:barback/barback.dart';
+import '../barback.dart';
+
/// Decorates an inner [Transformer] and handles including and excluding
/// primary inputs.
class ExcludingTransformer extends Transformer {
- /// If [includes] or [excludes] is non-null, wraps [inner] in an
+ /// If [id] defines includes or excludes, wraps [inner] in an
/// [ExcludingTransformer] that handles those.
///
/// Otherwise, just returns [inner] unmodified.
- static Transformer wrap(Transformer inner, Set<String> includes,
- Set<String> excludes) {
- if (includes == null && excludes == null) return inner;
+ static Transformer wrap(Transformer inner, TransformerId id) {
+ if (!id.hasExclusions) return inner;
if (inner is LazyTransformer) {
// TODO(nweiz): Remove these unnecessary "as"es when issue 19046 is fixed.
- return new _LazyExcludingTransformer(
- inner as LazyTransformer, includes, excludes);
+ return new _LazyExcludingTransformer(inner as LazyTransformer, id);
} else if (inner is DeclaringTransformer) {
return new _DeclaringExcludingTransformer(
- inner as DeclaringTransformer, includes, excludes);
+ inner as DeclaringTransformer, id);
} else {
- return new ExcludingTransformer._(inner, includes, excludes);
+ return new ExcludingTransformer._(inner, id);
}
}
final Transformer _inner;
- /// The set of asset paths which should be included.
- ///
- /// If `null`, all non-excluded assets are allowed. Otherwise, only included
- /// assets are allowed.
- final Set<String> _includes;
-
- /// The set of assets which should be excluded.
- ///
- /// Exclusions are applied after inclusions.
- final Set<String> _excludes;
+ /// The id containing rules for which assets to include or exclude.
+ final TransformerId _id;
- ExcludingTransformer._(this._inner, this._includes, this._excludes);
+ ExcludingTransformer._(this._inner, this._id);
isPrimary(AssetId id) {
- // TODO(rnystrom): Support globs in addition to paths. See #17093.
- if (_includes != null) {
- // If there are any includes, it must match one of them.
- if (!_includes.contains(id.path)) return false;
- }
-
- // It must not be excluded.
- if (_excludes != null && _excludes.contains(id.path)) {
- return false;
- }
-
+ if (!_id.canTransform(id.path)) return false;
return _inner.isPrimary(id);
}
@@ -68,9 +50,8 @@ class ExcludingTransformer extends Transformer {
class _DeclaringExcludingTransformer extends ExcludingTransformer
implements DeclaringTransformer {
- _DeclaringExcludingTransformer(DeclaringTransformer inner,
- Set<String> includes, Set<String> excludes)
- : super._(inner as Transformer, includes, excludes);
+ _DeclaringExcludingTransformer(DeclaringTransformer inner, TransformerId id)
+ : super._(inner as Transformer, id);
Future declareOutputs(DeclaringTransform transform) =>
(_inner as DeclaringTransformer).declareOutputs(transform);
@@ -78,7 +59,6 @@ class _DeclaringExcludingTransformer extends ExcludingTransformer
class _LazyExcludingTransformer extends _DeclaringExcludingTransformer
implements LazyTransformer {
- _LazyExcludingTransformer(DeclaringTransformer inner,
- Set<String> includes, Set<String> excludes)
- : super(inner, includes, excludes);
+ _LazyExcludingTransformer(DeclaringTransformer inner, TransformerId id)
+ : super(inner, id);
}

Powered by Google App Engine
This is Rietveld 408576698