1.1 --- a/java/util.py Mon Jan 10 01:04:50 2005 +0100
1.2 +++ b/java/util.py Mon Jan 10 01:05:15 2005 +0100
1.3 @@ -5,9 +5,56 @@
1.4 class Collection(object):
1.5 pass
1.6
1.7 +class Iterator(object):
1.8 + pass
1.9 +
1.10 class List(object):
1.11 pass
1.12
1.13 +class Map(object):
1.14 + pass
1.15 +
1.16 +class Set(Collection):
1.17 + pass
1.18 +
1.19 +# Abstract classes.
1.20 +
1.21 +class AbstractMap(Map):
1.22 + pass
1.23 +
1.24 +class Dictionary(object):
1.25 + pass
1.26 +
1.27 +# Exceptions.
1.28 +
1.29 +class NoSuchElementException(object):
1.30 + pass
1.31 +
1.32 +# Special Python classes.
1.33 +
1.34 +class _Iterator(Iterator):
1.35 + def __init__(self, iterator):
1.36 + self.iterator = iterator
1.37 + self.current = None
1.38 +
1.39 + def hasNext(self):
1.40 + if self.current is None:
1.41 + try:
1.42 + self.current = self.iterator.next()
1.43 + except StopIteration:
1.44 + self.current = None
1.45 + return 0
1.46 + return 1
1.47 + hasNext___ = hasNext
1.48 +
1.49 + def next(self):
1.50 + if self.hasNext():
1.51 + current = self.current
1.52 + self.current = None
1.53 + return current
1.54 + raise Exception, NoSuchElementException()
1.55 + next___ = next
1.56 +
1.57 # Classes.
1.58
1.59 class EventObject(object):
1.60 @@ -19,13 +66,67 @@
1.61 # NOTE: Use Python conventions.
1.62 return str(self)
1.63
1.64 -class Hashtable(object):
1.65 +class Hashtable(Dictionary):
1.66 def __init__(self, *args):
1.67 # NOTE: To be implemented.
1.68 pass
1.69
1.70 setattr(Hashtable, "__init_____", Hashtable.__init__)
1.71
1.72 +class HashMap(AbstractMap):
1.73 + def __init__(self, *args):
1.74 + self.d = {}
1.75 +
1.76 + def init_____java__util__Map(self, map):
1.77 + self.d = {}
1.78 + iterator = map.keySet().iterator()
1.79 + while iterator.hasNext():
1.80 + key = iterator.next()
1.81 + value = map.get(key)
1.82 + self.d[key] = value
1.83 +
1.84 + def get(self, key):
1.85 + return self.d[key]
1.86 + get___java__lang__Object = get
1.87 +
1.88 + def keySet(self):
1.89 + return HashSet(self.d.keys())
1.90 + keySet___ = keySet
1.91 +
1.92 + def put(self, key, value):
1.93 + self.d[key] = value
1.94 + put___java__lang__Object___java__lang__Object = put
1.95 +
1.96 + # Python helper methods.
1.97 +
1.98 + def __getitem__(self, key):
1.99 + return self.d[key]
1.100 +
1.101 + def __setitem__(self, key, value):
1.102 + self.d[key] = value
1.103 +
1.104 + def keys(self):
1.105 + return self.d.keys()
1.106 +
1.107 + def values(self):
1.108 + return self.d.values()
1.109 +
1.110 + def items(self):
1.111 + return self.d.items()
1.112 +
1.113 +setattr(HashMap, "__init_____", HashMap.__init__)
1.114 +setattr(HashMap, "__init_____java__util__Map", HashMap.init_____java__util__Map)
1.115 +
1.116 +class HashSet(Set):
1.117 + def __init__(self):
1.118 + self.s = []
1.119 +
1.120 + def iterator(self):
1.121 + return _Iterator(iter(self.s))
1.122 + iterator___ = iterator
1.123 +
1.124 +setattr(HashSet, "__init_____", HashSet.__init__)
1.125 +
1.126 class ResourceBundle(object):
1.127 def __init__(self, *args):
1.128 # NOTE: To be implemented.