| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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.graph.node_status; | 5 library barback.graph.node_status; |
| 6 | 6 |
| 7 /// The status of a node in barback's package graph. | 7 /// The status of a node in barback's package graph. |
| 8 /// | 8 /// |
| 9 /// A node has three possible statuses: [IDLE], [MATERIALIZING], and [RUNNING]. | 9 /// A node has three possible statuses: [IDLE], [MATERIALIZING], and [RUNNING]. |
| 10 /// These are ordered from least dirty to most dirty; the [dirtier] and | 10 /// These are ordered from least dirty to most dirty; the [dirtier] and |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 /// | 30 /// |
| 31 /// Declaring transformers are only considered dirty until they're finished | 31 /// Declaring transformers are only considered dirty until they're finished |
| 32 /// declaring their outputs; past that point, they're always either | 32 /// declaring their outputs; past that point, they're always either |
| 33 /// [MATERIALIZING] or [IDLE]. Non-declaring transformers, by contrast, are | 33 /// [MATERIALIZING] or [IDLE]. Non-declaring transformers, by contrast, are |
| 34 /// always either [RUNNING] or [IDLE]. | 34 /// always either [RUNNING] or [IDLE]. |
| 35 static const RUNNING = const NodeStatus("running"); | 35 static const RUNNING = const NodeStatus("running"); |
| 36 | 36 |
| 37 final String _name; | 37 final String _name; |
| 38 | 38 |
| 39 /// Returns the dirtiest status in [statuses]. | 39 /// Returns the dirtiest status in [statuses]. |
| 40 static NodeStatus dirtiest(Iterable<NodeStatus> statuses) => | 40 static NodeStatus dirtiest(Iterable<NodeStatus> statuses) => statuses.fold( |
| 41 statuses.fold(NodeStatus.IDLE, | 41 NodeStatus.IDLE, (status1, status2) => status1.dirtier(status2)); |
| 42 (status1, status2) => status1.dirtier(status2)); | |
| 43 | 42 |
| 44 const NodeStatus(this._name); | 43 const NodeStatus(this._name); |
| 45 | 44 |
| 46 String toString() => _name; | 45 String toString() => _name; |
| 47 | 46 |
| 48 /// Returns [this] or [other], whichever is dirtier. | 47 /// Returns [this] or [other], whichever is dirtier. |
| 49 NodeStatus dirtier(NodeStatus other) { | 48 NodeStatus dirtier(NodeStatus other) { |
| 50 if (this == RUNNING || other == RUNNING) return RUNNING; | 49 if (this == RUNNING || other == RUNNING) return RUNNING; |
| 51 if (this == MATERIALIZING || other == MATERIALIZING) return MATERIALIZING; | 50 if (this == MATERIALIZING || other == MATERIALIZING) return MATERIALIZING; |
| 52 return IDLE; | 51 return IDLE; |
| 53 } | 52 } |
| 54 } | 53 } |
| OLD | NEW |