comparison core/src/luan/AbstractLuanTable.java @ 364:1a464e090538 0.3

simplify table code
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 16 Apr 2015 11:51:21 -0600
parents 1bce334a816b
children 5e0acdeaea93
comparison
equal deleted inserted replaced
363:17b02b56d806 364:1a464e090538
16 16
17 public abstract class AbstractLuanTable implements LuanTable, LuanRepr { 17 public abstract class AbstractLuanTable implements LuanTable, LuanRepr {
18 18
19 protected final Map<Object,Object> newMap() { 19 protected final Map<Object,Object> newMap() {
20 return new LinkedHashMap<Object,Object>(); 20 return new LinkedHashMap<Object,Object>();
21 }
22
23 protected final Map<Object,Object> newMap(Map<Object,Object> map) {
24 return new LinkedHashMap<Object,Object>(map);
25 } 21 }
26 22
27 @Override public boolean isEmpty() { 23 @Override public boolean isEmpty() {
28 return isList() && length()==0; 24 return isList() && length()==0;
29 } 25 }
89 @Override public void setMetatable(LuanTable metatable) { 85 @Override public void setMetatable(LuanTable metatable) {
90 throw new UnsupportedOperationException("can't set a metatable on a "+type()); 86 throw new UnsupportedOperationException("can't set a metatable on a "+type());
91 } 87 }
92 88
93 @Override public LuanTable cloneTable() { 89 @Override public LuanTable cloneTable() {
94 return isList() ? new LuanTableImpl(new ArrayList<Object>(asList())) : new LuanTableImpl(newMap(asMap())); 90 return isList() ? new LuanTableImpl(new ArrayList<Object>(asList())) : new LuanTableImpl(asMap());
95 } 91 }
96 92
97 @Override public boolean hasJava() { 93 @Override public boolean hasJava() {
98 throw new UnsupportedOperationException(); 94 throw new UnsupportedOperationException();
99 } 95 }