Skip to content

Instantly share code, notes, and snippets.

@le0nidas
Created January 7, 2021 13:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save le0nidas/9f02e58faf1bc29221dc7de80554832a to your computer and use it in GitHub Desktop.
Save le0nidas/9f02e58faf1bc29221dc7de80554832a to your computer and use it in GitHub Desktop.
class Editor {
// ...
fun backup(): Memento {
return ActualMemento(text, caretPosition)
}
fun restore(memento: Memento) {
memento as ActualMemento
text.clear()
text.addAll(memento.text)
caretPosition = memento.caretPosition
}
// ...
open inner class Memento
private inner class ActualMemento(text: List<String>, caretPosition: Int) : Memento() {
val text: List<String>
val caretPosition: Int
init {
this.text = ArrayList(text)
this.caretPosition = caretPosition
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment