comparison core/src/luan/LuanTableImpl.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
19 private List<Object> list = null; 19 private List<Object> list = null;
20 private LuanTable metatable = null; 20 private LuanTable metatable = null;
21 private boolean hasJava = false; 21 private boolean hasJava = false;
22 22
23 public LuanTableImpl() {} 23 public LuanTableImpl() {}
24 /* 24
25 public LuanTableImpl(LuanTableImpl tbl) {
26 if( tbl.map != null )
27 this.map = newMap(tbl.map);
28 if( tbl.list != null )
29 this.list = new ArrayList<Object>(tbl.list);
30 }
31 */
32 LuanTableImpl(List<Object> list) { 25 LuanTableImpl(List<Object> list) {
33 this.list = list; 26 this.list = list;
34 this.map = newMap(); 27 this.map = newMap();
35 map.put("n",list.size()); 28 map.put("n",list.size());
36 for( int i=0; i<list.size(); i++ ) { 29 for( int i=0; i<list.size(); i++ ) {
84 return map==null || map.isEmpty(); 77 return map==null || map.isEmpty();
85 } 78 }
86 79
87 @Override public List<Object> asList() { 80 @Override public List<Object> asList() {
88 return list!=null ? list : Collections.emptyList(); 81 return list!=null ? list : Collections.emptyList();
89 }
90
91 @Override public Map<Object,Object> asMap() {
92 if( list == null || list.isEmpty() )
93 return map();
94 Map<Object,Object> rtn = map!=null ? newMap(map) : newMap();
95 for( ListIterator iter = list.listIterator(); iter.hasNext(); ) {
96 int i = iter.nextIndex();
97 rtn.put(i+1,iter.next());
98 }
99 return rtn;
100 } 82 }
101 83
102 @Override protected Map<Object,Object> map() { 84 @Override protected Map<Object,Object> map() {
103 return map!=null ? map : Collections.emptyMap(); 85 return map!=null ? map : Collections.emptyMap();
104 } 86 }