Mercurial Hosting > luan
view 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 |
line wrap: on
line source
package luan; import java.util.Iterator; import java.util.Map; import java.util.HashMap; public class LuaTable { private final Map<Object,Object> map = new HashMap<Object,Object>(); private LuaTable metatable; @Override public String toString() { return "table: " + Integer.toHexString(hashCode()); } public Object get(Object key) { return map.get(key); } public Object put(Object key,Object val) { if( val == null ) { return map.remove(key); } else { return map.put(key,val); } } public int length() { int i = 0; while( map.containsKey( new LuaNumber(i) ) ) { i++; } return i; } public Iterator<Map.Entry<Object,Object>> iterator() { return map.entrySet().iterator(); } public LuaTable getMetatable() { return metatable; } public void setMetatable(LuaTable metatable) { this.metatable = metatable; } }