| 
									
										
										
										
											2015-11-25 18:01:44 +01:00
										 |  |  | // #docregion
 | 
					
						
							|  |  |  | export class RestoreService<T> { | 
					
						
							|  |  |  |   originalItem: T; | 
					
						
							|  |  |  |   currentItem: T; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   setItem (item: T) { | 
					
						
							|  |  |  |     this.originalItem = item; | 
					
						
							|  |  |  |     this.currentItem = this.clone(item); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  |   getItem (): T { | 
					
						
							| 
									
										
										
										
											2015-11-25 18:01:44 +01:00
										 |  |  |     return this.currentItem; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  |   restoreItem (): T { | 
					
						
							| 
									
										
										
										
											2015-11-25 18:01:44 +01:00
										 |  |  |     this.currentItem = this.originalItem; | 
					
						
							|  |  |  |     return this.getItem(); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  |   clone (item: T): T { | 
					
						
							| 
									
										
										
										
											2015-11-25 18:01:44 +01:00
										 |  |  |     // super poor clone implementation
 | 
					
						
							|  |  |  |     return JSON.parse(JSON.stringify(item)); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | // #enddocregion
 |