mirror of https://github.com/kivy/pyjnius.git
introduce protocol_map for Map$Entry (#659)
This commit is contained in:
parent
7da449434e
commit
c126762e36
|
@ -377,6 +377,12 @@ def _map_getitem(self, k):
|
||||||
raise KeyError()
|
raise KeyError()
|
||||||
return rtr
|
return rtr
|
||||||
|
|
||||||
|
def _map_entry_getitem(self, i):
|
||||||
|
if i == 0:
|
||||||
|
return self.getKey()
|
||||||
|
if i == 1:
|
||||||
|
return self.getValue()
|
||||||
|
raise IndexError()
|
||||||
|
|
||||||
def _iterator_next(self):
|
def _iterator_next(self):
|
||||||
''' dunder method for java.util.Iterator'''
|
''' dunder method for java.util.Iterator'''
|
||||||
|
@ -404,6 +410,11 @@ protocol_map = {
|
||||||
'__contains__' : lambda self, item: self.containsKey(item),
|
'__contains__' : lambda self, item: self.containsKey(item),
|
||||||
'__iter__' : lambda self: self.keySet().iterator()
|
'__iter__' : lambda self: self.keySet().iterator()
|
||||||
},
|
},
|
||||||
|
'java.util.Map$Entry' : {
|
||||||
|
'__getitem__' : _map_entry_getitem,
|
||||||
|
'__iter__' : lambda self: iter([self.getKey(), self.getValue()]),
|
||||||
|
'__len__' : lambda self: 2
|
||||||
|
},
|
||||||
'java.util.Iterator' : {
|
'java.util.Iterator' : {
|
||||||
'__iter__' : lambda self: self,
|
'__iter__' : lambda self: self,
|
||||||
'__next__' : _iterator_next,
|
'__next__' : _iterator_next,
|
||||||
|
|
|
@ -41,6 +41,9 @@ class TestCollections(unittest.TestCase):
|
||||||
# __iter__
|
# __iter__
|
||||||
for k in hmap:
|
for k in hmap:
|
||||||
self.assertTrue(k in data)
|
self.assertTrue(k in data)
|
||||||
|
# __map_entry__
|
||||||
|
for k,v in hmap.entrySet():
|
||||||
|
self.assertEqual(data[k], v)
|
||||||
# __contains__
|
# __contains__
|
||||||
self.assertFalse(0 in hmap)
|
self.assertFalse(0 in hmap)
|
||||||
# __delitem__
|
# __delitem__
|
||||||
|
|
Loading…
Reference in New Issue