| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 // TODO(ahe): This class should not be generic. | 5 class LinkFactory<T> { |
| 6 class LinkFactory { | 6 factory Link(T head, [Link<T> tail]) { |
| 7 factory Link<T>(T head, [Link<T> tail]) { | |
| 8 if (tail === null) { | 7 if (tail === null) { |
| 9 tail = new LinkTail<T>(); | 8 tail = new LinkTail<T>(); |
| 10 } | 9 } |
| 11 return new LinkEntry<T>(head, tail); | 10 return new LinkEntry<T>(head, tail); |
| 12 } | 11 } |
| 13 | 12 |
| 14 factory Link<T>.fromList(List<T> list) { | 13 factory Link.fromList(List<T> list) { |
| 15 switch (list.length) { | 14 switch (list.length) { |
| 16 case 0: | 15 case 0: |
| 17 return new LinkTail<T>(); | 16 return new LinkTail<T>(); |
| 18 case 1: | 17 case 1: |
| 19 return new Link<T>(list[0]); | 18 return new Link<T>(list[0]); |
| 20 case 2: | 19 case 2: |
| 21 return new Link<T>(list[0], new Link<T>(list[1])); | 20 return new Link<T>(list[0], new Link<T>(list[1])); |
| 22 case 3: | 21 case 3: |
| 23 return new Link<T>(list[0], new Link<T>(list[1], new Link<T>(list[2]))); | 22 return new Link<T>(list[0], new Link<T>(list[1], new Link<T>(list[2]))); |
| 24 } | 23 } |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 void addLast(T t) { | 122 void addLast(T t) { |
| 124 LinkEntry<T> entry = new LinkEntry<T>(t, null); | 123 LinkEntry<T> entry = new LinkEntry<T>(t, null); |
| 125 if (head === null) { | 124 if (head === null) { |
| 126 head = entry; | 125 head = entry; |
| 127 } else { | 126 } else { |
| 128 lastLink.tail = entry; | 127 lastLink.tail = entry; |
| 129 } | 128 } |
| 130 lastLink = entry; | 129 lastLink = entry; |
| 131 } | 130 } |
| 132 } | 131 } |
| OLD | NEW |