Skip to content

Commit

Permalink
Merge pull request #8 from jordanhalterman/dict-methods
Browse files Browse the repository at this point in the history
Implement common dictionary and 'magic' methods in Hashes and Sets.
  • Loading branch information
Norman Maurer committed Aug 12, 2013
2 parents 94d8555 + 20e027a commit 9482e9d
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions src/main/api_shim/core/shared_data.py
Expand Up @@ -104,6 +104,9 @@ def __getitem__(self, key):
if isinstance(obj, org.vertx.java.core.buffer.Buffer):
obj = Buffer(obj)
return obj

def __delitem__(self, key):
self.java_obj.remove(key)

def __eq__(self, other):
if isinstance(other, SharedHash):
Expand All @@ -114,6 +117,27 @@ def __eq__(self, other):
def __str__(self):
return map_from_java(self.java_obj).__str__()

def __len__(self):
return self.java_obj.size()

def __contains__(self, key):
return self.has_key(key)

def __iter__(self):
return iter(map_from_java(self.java_obj))

def get(self, key, default=None):
return map_from_java(self.java_obj).get(key, default)

def pop(self, key, *args, **kwargs):
return map_from_java(self.java_obj).pop(key, *args, **kwargs)

def has_key(self, key):
return map_from_java(self.java_obj).has_key(key)

def iterkeys(self):
return map_from_java(self.java_obj).iterkeys()

def keys(self):
return map_from_java(self.java_obj).keys()

Expand All @@ -123,6 +147,30 @@ def iteritems(self):
def items(self):
return map_from_java(self.java_obj).items()

def itervalues(self):
return map_from_java(self.java_obj).itervalues()

def values(self):
return map_from_java(self.java_obj).values()

def setdefault(self, key, default=None):
map = map_from_java(self.java_obj)
if key in map:
return map[key]
else:
self[key] = default
return default

def update(self, other):
if isinstance(other, SharedHash):
other = map_from_java(other.java_obj)
if isinstance(other, dict):
items = other.items()
else:
items = other
for key, value in items():
self[key] = value

def _to_java_map(self):
return self.java_obj

Expand All @@ -146,6 +194,12 @@ def __str__(self):
def __iter__(self):
return map_from_java(self.java_obj).__iter__()

def __len__(self):
return self.java_obj.size()

def __contains__(self, key):
return key in map_from_java(self.java_obj)

def add(self, obj):
""" Add an object to the set
Expand Down

0 comments on commit 9482e9d

Please sign in to comment.