Mercurial Hosting > luan
changeset 397:5e0acdeaea93
add LuanTable isSet() and asSet() (untested)
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 27 Apr 2015 12:25:30 -0600 |
parents | ba8b0aae6453 |
children | 39c4ac11a58a |
files | core/src/luan/AbstractLuanTable.java core/src/luan/LuanTable.java core/src/luan/LuanTableImpl.java |
diffstat | 3 files changed, 23 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
diff -r ba8b0aae6453 -r 5e0acdeaea93 core/src/luan/AbstractLuanTable.java --- a/core/src/luan/AbstractLuanTable.java Sun Apr 26 21:19:10 2015 -0600 +++ b/core/src/luan/AbstractLuanTable.java Mon Apr 27 12:25:30 2015 -0600 @@ -32,6 +32,22 @@ return Collections.emptyList(); } + @Override public boolean isSet() { + for( Map.Entry<Object,Object> entry : this ) { + if( !entry.getValue().equals(Boolean.TRUE) ) + return false; + } + return true; + } + + @Override public Set<Object> asSet() { + Set<Object> set = new HashSet<Object>(); + for( Map.Entry<Object,Object> entry : this ) { + set.add(entry.getKey()); + } + return set; + } + @Override public Map<Object,Object> asMap() { Map<Object,Object> map = newMap(); for( Map.Entry<Object,Object> entry : this ) {
diff -r ba8b0aae6453 -r 5e0acdeaea93 core/src/luan/LuanTable.java --- a/core/src/luan/LuanTable.java Sun Apr 26 21:19:10 2015 -0600 +++ b/core/src/luan/LuanTable.java Mon Apr 27 12:25:30 2015 -0600 @@ -2,12 +2,15 @@ import java.util.Map; import java.util.List; +import java.util.Set; import java.util.Comparator; public interface LuanTable extends Iterable<Map.Entry<Object,Object>> { public boolean isEmpty(); public boolean isList(); + public boolean isSet(); + public Set<Object> asSet(); public List<Object> asList(); public Map<Object,Object> asMap(); public Object get(Object key);
diff -r ba8b0aae6453 -r 5e0acdeaea93 core/src/luan/LuanTableImpl.java --- a/core/src/luan/LuanTableImpl.java Sun Apr 26 21:19:10 2015 -0600 +++ b/core/src/luan/LuanTableImpl.java Mon Apr 27 12:25:30 2015 -0600 @@ -84,8 +84,8 @@ @Override protected Map<Object,Object> map() { return map!=null ? map : Collections.emptyMap(); } - - public boolean isSet() { +/* + @Override public boolean isSet() { if( list != null ) { for( Object obj : list ) { if( obj!=null && !obj.equals(Boolean.TRUE) ) @@ -101,7 +101,7 @@ return true; } - public Set<Object> asSet() { + @Override public Set<Object> asSet() { if( list == null || list.isEmpty() ) return map!=null ? map.keySet() : Collections.emptySet(); Set<Object> rtn = map!=null ? new HashSet<Object>(map.keySet()) : new HashSet<Object>(); @@ -110,7 +110,7 @@ } return rtn; } - +*/ @Override protected String type() { return "table"; }