Mercurial Hosting > luan
diff core/src/luan/AbstractLuanTable.java @ 222:b76fcb72d97d
add AbstractLuanTable and improve HttpLuan
git-svn-id: https://luan-java.googlecode.com/svn/trunk@223 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Mon, 21 Jul 2014 02:23:05 +0000 |
parents | |
children | 05eb2837ddbf |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/src/luan/AbstractLuanTable.java Mon Jul 21 02:23:05 2014 +0000 @@ -0,0 +1,67 @@ +package luan; + +import java.util.Iterator; +import java.util.ListIterator; +import java.util.Map; +import java.util.HashMap; +import java.util.List; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Set; +import java.util.HashSet; +import java.util.IdentityHashMap; +import java.util.regex.Pattern; + + +public abstract class AbstractLuanTable implements LuanTable { + + @Override public List<Object> asList() { + return Collections.emptyList(); + } + + @Override public Map<Object,Object> asMap() { + return Collections.emptyMap(); + } + + protected abstract String type(); + + @Override public final String toString() { + return type() + ": " + Integer.toHexString(hashCode()); + } + + @Override public Object put(Object key,Object val) { + throw new UnsupportedOperationException("can't put into a "+type()); + } + + @Override public void insert(int pos,Object value) { + throw new UnsupportedOperationException("can't insert into a "+type()); + } + + @Override public void add(Object value) { + throw new UnsupportedOperationException("can't add to a "+type()); + } + + @Override public Object remove(int pos) { + throw new UnsupportedOperationException("can't remove from a "+type()); + } + + @Override public void sort(Comparator<Object> cmp) { + } + + @Override public int length() { + return 0; + } + + @Override public LuanTable subList(int from,int to) { + throw new UnsupportedOperationException("can't get a sub-list of a "+type()); + } + + @Override public LuanTable getMetatable() { + return null; + } + + @Override public void setMetatable(LuanTable metatable) { + throw new UnsupportedOperationException("can't set a metatable on a "+type()); + } +}