Trapped-Backend.st 640 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. Smalltalk createPackage: 'Trapped-Backend'!
  2. (Smalltalk packageAt: 'Trapped-Backend') imports: {'axxord/Axxord'}!
  3. Object subclass: #Isolator
  4. instanceVariableNames: 'root'
  5. package: 'Trapped-Backend'!
  6. !Isolator methodsFor: 'accessing'!
  7. root
  8. ^root
  9. !
  10. root: anObject
  11. root := anObject
  12. ! !
  13. !Isolator methodsFor: 'action'!
  14. model: anEavModel modify: aBlock
  15. | newValue |
  16. newValue := aBlock value: (anEavModel on: self).
  17. anEavModel on: self put: newValue deepCopy
  18. !
  19. model: anEavModel read: aBlock
  20. aBlock value: (anEavModel on: self) deepCopy
  21. ! !
  22. !Isolator class methodsFor: 'instance creation'!
  23. on: anObject
  24. ^self new root: anObject
  25. ! !