.. | .. |
---|
19 | 19 | |
---|
20 | 20 | boolean HasBigData() |
---|
21 | 21 | { |
---|
22 | | - return false; |
---|
| 22 | + return filecontent != null; |
---|
23 | 23 | } |
---|
24 | 24 | |
---|
25 | 25 | void ExtractBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable) |
---|
26 | 26 | { |
---|
| 27 | + Object3D o; |
---|
| 28 | + |
---|
| 29 | + if (hashtable.containsKey(GetUUID())) |
---|
| 30 | + { |
---|
| 31 | + o = hashtable.get(GetUUID()); |
---|
| 32 | + |
---|
| 33 | + //Grafreed.Assert(this.filecontent == ((FileObject)o).filecontent); |
---|
| 34 | + } |
---|
| 35 | + else |
---|
| 36 | + { |
---|
| 37 | + o = new Object3D("copy of " + this.name); |
---|
| 38 | + |
---|
| 39 | + hashtable.put(GetUUID(), o); |
---|
| 40 | + } |
---|
| 41 | + |
---|
| 42 | + ExtractBigData(o); |
---|
27 | 43 | } |
---|
28 | 44 | |
---|
29 | 45 | void RestoreBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable) |
---|
30 | 46 | { |
---|
| 47 | + if (!hashtable.containsKey(GetUUID())) |
---|
| 48 | + return; |
---|
| 49 | + |
---|
| 50 | + Object3D o = hashtable.get(GetUUID()); |
---|
| 51 | + |
---|
| 52 | + RestoreBigData(o); |
---|
31 | 53 | } |
---|
32 | 54 | |
---|
33 | 55 | boolean IsStatic() |
---|
.. | .. |
---|
100 | 122 | |
---|
101 | 123 | o.savefilecontent = this.filecontent; |
---|
102 | 124 | |
---|
103 | | - // filecontent transient |
---|
| 125 | + // filecontent is transient |
---|
| 126 | + this.filecontent = null; |
---|
104 | 127 | } |
---|
105 | 128 | |
---|
106 | 129 | void RestoreBigData(Object3D o) |
---|