diff core/src/luan/LuanPropertyMeta.java @ 413:8937263f59f6

add __pairs; add back HttpServicer.get_parameter_values;
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 29 Apr 2015 19:01:18 -0600
parents 1b38de2b1845
children ce8e19567911
line wrap: on
line diff
--- a/core/src/luan/LuanPropertyMeta.java	Wed Apr 29 16:28:18 2015 -0600
+++ b/core/src/luan/LuanPropertyMeta.java	Wed Apr 29 19:01:18 2015 -0600
@@ -1,7 +1,10 @@
 package luan;
 
+import java.util.Map;
+import java.util.Iterator;
 
-public class LuanPropertyMeta extends LuanMeta implements DeepCloneable<LuanPropertyMeta> {
+
+public final class LuanPropertyMeta extends LuanMeta implements DeepCloneable<LuanPropertyMeta> {
 	private LuanTable getters;
 	private LuanTable setters;
 
@@ -41,6 +44,23 @@
 		return luan.call(fn);
 	}
 
+	@Override protected Iterator keys() {
+		return new Iterator() {
+			final Iterator<Map.Entry<Object,Object>> iter = getters.iterator();
+
+			@Override public boolean hasNext() {
+				return iter.hasNext();
+			}
+			@Override public Object next() {
+				return iter.next().getKey();
+			}
+			@Override public void remove() {
+				throw new UnsupportedOperationException();
+			}
+		};
+	}
+
+
 	@Override public boolean canNewindex() {
 		return true;
 	}