* A full first version of the prose. Makes use of Dart example, of course. * Tweaks to Dart example code; manually tested in Dartium under checked mode. closes #1142
29 lines
447 B
Dart
29 lines
447 B
Dart
// #docregion
|
|
import 'package:angular2/core.dart';
|
|
|
|
@Injectable()
|
|
class RestoreService<T> {
|
|
T _originalItem;
|
|
T _currentItem;
|
|
|
|
setItem(T item) {
|
|
_originalItem = item;
|
|
_currentItem = clone(item);
|
|
}
|
|
|
|
T getItem() {
|
|
return _currentItem;
|
|
}
|
|
|
|
T restoreItem() {
|
|
_currentItem = _originalItem;
|
|
return getItem();
|
|
}
|
|
|
|
T clone(T item) {
|
|
// super poor clone implementation
|
|
return item.clone();
|
|
}
|
|
}
|
|
// #enddocregion
|