comparison src/luan/LuaTable.java @ 35:e51906de0f11

implement metatables git-svn-id: https://luan-java.googlecode.com/svn/trunk@36 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Tue, 18 Dec 2012 07:05:58 +0000
parents 9de9be530625
children 57054fa43189
comparison
equal deleted inserted replaced
34:0cdc1da466ee 35:e51906de0f11
5 import java.util.HashMap; 5 import java.util.HashMap;
6 6
7 7
8 public class LuaTable { 8 public class LuaTable {
9 private final Map<Object,Object> map = new HashMap<Object,Object>(); 9 private final Map<Object,Object> map = new HashMap<Object,Object>();
10 private LuaTable metatable;
10 11
11 @Override public String toString() { 12 @Override public String toString() {
12 return "table: " + Integer.toHexString(hashCode()); 13 return "table: " + Integer.toHexString(hashCode());
13 } 14 }
14 15
15 public Object get(Object key) { 16 public Object get(Object key) {
16 return map.get(key); 17 return map.get(key);
17 } 18 }
18 19
19 public void set(Object key,Object val) { 20 public Object put(Object key,Object val) {
20 if( val == null ) { 21 if( val == null ) {
21 map.remove(key); 22 return map.remove(key);
22 } else { 23 } else {
23 map.put(key,val); 24 return map.put(key,val);
24 } 25 }
25 } 26 }
26 27
27 public int length() { 28 public int length() {
28 int i = 0; 29 int i = 0;
34 35
35 public Iterator<Map.Entry<Object,Object>> iterator() { 36 public Iterator<Map.Entry<Object,Object>> iterator() {
36 return map.entrySet().iterator(); 37 return map.entrySet().iterator();
37 } 38 }
38 39
40 public LuaTable getMetatable() {
41 return metatable;
42 }
43
44 public void setMetatable(LuaTable metatable) {
45 this.metatable = metatable;
46 }
39 } 47 }