Mercurial Hosting > luan
comparison src/luan/LuanState.java @ 782:655280eab1e2
start limited cloning
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 30 Aug 2016 01:29:33 -0600 |
parents | fbbdd369a13a |
children | 6a7c6879158d |
comparison
equal
deleted
inserted
replaced
781:fbbdd369a13a | 782:655280eab1e2 |
---|---|
12 import luan.modules.BasicLuan; | 12 import luan.modules.BasicLuan; |
13 import luan.modules.JavaLuan; | 13 import luan.modules.JavaLuan; |
14 | 14 |
15 | 15 |
16 public final class LuanState implements LuanCloneable { | 16 public final class LuanState implements LuanCloneable { |
17 | |
18 public LuanJava java; | 17 public LuanJava java; |
19 private Map registry; | 18 private Map registry; |
20 private final List<Reference<Closeable>> onClose = new ArrayList<Reference<Closeable>>(); | 19 private final List<Reference<Closeable>> onClose = new ArrayList<Reference<Closeable>>(); |
21 | 20 |
22 public LuanState() { | 21 public LuanState() { |
24 registry = new HashMap(); | 23 registry = new HashMap(); |
25 } | 24 } |
26 | 25 |
27 private LuanState(LuanState luan) {} | 26 private LuanState(LuanState luan) {} |
28 | 27 |
29 @Override public LuanState shallowClone() { | 28 @Override public LuanState shallowClone(LuanCloner cloner) { |
30 return new LuanState(this); | 29 return new LuanState(this); |
31 } | 30 } |
32 | 31 |
33 @Override public void deepenClone(LuanCloneable dc,LuanCloner cloner) { | 32 @Override public void deepenClone(LuanCloneable dc,LuanCloner cloner) { |
34 LuanState clone = (LuanState)dc; | 33 LuanState clone = (LuanState)dc; |
35 clone.registry = cloner.deepClone(registry); | 34 clone.registry = cloner.clone(registry); |
36 clone.java = (LuanJava)cloner.deepClone(java); | 35 clone.java = (LuanJava)cloner.clone(java); |
37 } | 36 } |
38 | 37 |
39 public final Map registry() { | 38 public final Map registry() { |
40 return registry; | 39 return registry; |
41 } | 40 } |