| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library barback.transform; | 5 library barback.transform; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'asset.dart'; | 9 import 'asset.dart'; |
| 10 import 'asset_id.dart'; | 10 import 'asset_id.dart'; |
| 11 import 'asset_node.dart'; | 11 import 'asset_node.dart'; |
| 12 import 'asset_set.dart'; | 12 import 'asset_set.dart'; |
| 13 import 'errors.dart'; | 13 import 'errors.dart'; |
| 14 import 'transform_node.dart'; | 14 import 'transform_node.dart'; |
| 15 import 'utils.dart'; |
| 15 | 16 |
| 16 /// Creates a [Transform] by forwarding to the private constructor. | 17 /// Creates a [Transform] by forwarding to the private constructor. |
| 17 /// | 18 /// |
| 18 /// Lets [TransformNode] create [Transforms] without giving a [Transform] | 19 /// Lets [TransformNode] create [Transforms] without giving a [Transform] |
| 19 /// itself a public constructor, which would be visible to external users. | 20 /// itself a public constructor, which would be visible to external users. |
| 20 /// Unlike the [Transform] class, this function is not exported by barback.dart. | 21 /// Unlike the [Transform] class, this function is not exported by barback.dart. |
| 21 Transform createTransform(TransformNode node, Set<AssetNode> inputs, | 22 Transform createTransform(TransformNode node, Set<AssetNode> inputs, |
| 22 AssetSet outputs) => | 23 AssetSet outputs) => |
| 23 new Transform._(node, inputs, outputs); | 24 new Transform._(node, inputs, outputs); |
| 24 | 25 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 49 /// Gets the asset for the primary input. | 50 /// Gets the asset for the primary input. |
| 50 Future<Asset> get primaryInput => getInput(primaryId); | 51 Future<Asset> get primaryInput => getInput(primaryId); |
| 51 | 52 |
| 52 Transform._(this._node, this._inputs, this._outputs); | 53 Transform._(this._node, this._inputs, this._outputs); |
| 53 | 54 |
| 54 /// Gets the asset for for an input [id]. | 55 /// Gets the asset for for an input [id]. |
| 55 /// | 56 /// |
| 56 /// If an input with that ID cannot be found, throws an | 57 /// If an input with that ID cannot be found, throws an |
| 57 /// [AssetNotFoundException]. | 58 /// [AssetNotFoundException]. |
| 58 Future<Asset> getInput(AssetId id) { | 59 Future<Asset> getInput(AssetId id) { |
| 59 return new Future(() { | 60 return newFuture(() { |
| 60 var node = _node.phase.inputs[id]; | 61 var node = _node.phase.inputs[id]; |
| 61 // TODO(rnystrom): Need to handle passthrough where an asset from a | 62 // TODO(rnystrom): Need to handle passthrough where an asset from a |
| 62 // previous phase can be found. | 63 // previous phase can be found. |
| 63 | 64 |
| 64 // Throw if the input isn't found. This ensures the transformer's apply | 65 // Throw if the input isn't found. This ensures the transformer's apply |
| 65 // is exited. We'll then catch this and report it through the proper | 66 // is exited. We'll then catch this and report it through the proper |
| 66 // results stream. | 67 // results stream. |
| 67 if (node == null) throw new MissingInputException(id); | 68 if (node == null) throw new MissingInputException(id); |
| 68 | 69 |
| 69 // Keep track of which assets this transform depends on. | 70 // Keep track of which assets this transform depends on. |
| 70 _inputs.add(node); | 71 _inputs.add(node); |
| 71 return node.asset; | 72 return node.asset; |
| 72 }); | 73 }); |
| 73 } | 74 } |
| 74 | 75 |
| 75 /// Stores [output] as the output created by this transformation. | 76 /// Stores [output] as the output created by this transformation. |
| 76 /// | 77 /// |
| 77 /// A transformation can output as many assets as it wants. | 78 /// A transformation can output as many assets as it wants. |
| 78 void addOutput(Asset output) { | 79 void addOutput(Asset output) { |
| 79 // TODO(rnystrom): This should immediately throw if an output with that ID | 80 // TODO(rnystrom): This should immediately throw if an output with that ID |
| 80 // has already been created by this transformer. | 81 // has already been created by this transformer. |
| 81 _outputs.add(output); | 82 _outputs.add(output); |
| 82 } | 83 } |
| 83 } | 84 } |
| OLD | NEW |