annotate src/luan/impl/Pointer.java @ 1802:ca98dee04e08 default tip

add Parsers.json_null
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 21 Apr 2024 21:25:15 -0600
parents c922446f53aa
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
670
58ebfec6178b all luan now compiles
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 package luan.impl;
58ebfec6178b all luan now compiles
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2
1578
c922446f53aa immutable threading
Franklin Schmidt <fschmidt@gmail.com>
parents: 1561
diff changeset
3 import luan.LuanMutable;
1561
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
4 import luan.LuanException;
670
58ebfec6178b all luan now compiles
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5
58ebfec6178b all luan now compiles
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6
1578
c922446f53aa immutable threading
Franklin Schmidt <fschmidt@gmail.com>
parents: 1561
diff changeset
7 public final class Pointer implements LuanMutable {
1561
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
8 private Object o;
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
9 private boolean immutable = false;
670
58ebfec6178b all luan now compiles
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10
671
82f130eba7b0 improve declarations
Franklin Schmidt <fschmidt@gmail.com>
parents: 670
diff changeset
11 public Pointer() {}
82f130eba7b0 improve declarations
Franklin Schmidt <fschmidt@gmail.com>
parents: 670
diff changeset
12
82f130eba7b0 improve declarations
Franklin Schmidt <fschmidt@gmail.com>
parents: 670
diff changeset
13 public Pointer(Object o) {
82f130eba7b0 improve declarations
Franklin Schmidt <fschmidt@gmail.com>
parents: 670
diff changeset
14 this.o = o;
82f130eba7b0 improve declarations
Franklin Schmidt <fschmidt@gmail.com>
parents: 670
diff changeset
15 }
82f130eba7b0 improve declarations
Franklin Schmidt <fschmidt@gmail.com>
parents: 670
diff changeset
16
1578
c922446f53aa immutable threading
Franklin Schmidt <fschmidt@gmail.com>
parents: 1561
diff changeset
17 @Override public boolean isImmutable() {
c922446f53aa immutable threading
Franklin Schmidt <fschmidt@gmail.com>
parents: 1561
diff changeset
18 return immutable;
670
58ebfec6178b all luan now compiles
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 }
58ebfec6178b all luan now compiles
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20
1578
c922446f53aa immutable threading
Franklin Schmidt <fschmidt@gmail.com>
parents: 1561
diff changeset
21 @Override public void makeImmutable() {
c922446f53aa immutable threading
Franklin Schmidt <fschmidt@gmail.com>
parents: 1561
diff changeset
22 if(immutable)
c922446f53aa immutable threading
Franklin Schmidt <fschmidt@gmail.com>
parents: 1561
diff changeset
23 return;
1561
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
24 immutable = true;
1578
c922446f53aa immutable threading
Franklin Schmidt <fschmidt@gmail.com>
parents: 1561
diff changeset
25 LuanMutable.makeImmutable(o);
1561
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
26 }
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
27
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
28 public Object get() {
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
29 return o;
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
30 }
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
31
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
32 public void set(Object o) throws LuanException {
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
33 if( immutable )
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
34 throw new LuanException("variable is immutable");
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
35 this.o = o;
e1a13e707bf3 start immutable
Franklin Schmidt <fschmidt@gmail.com>
parents: 784
diff changeset
36 }
670
58ebfec6178b all luan now compiles
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37 }