From: <pj...@us...> - 2008-12-17 07:09:29
|
Revision: 5773 http://jython.svn.sourceforge.net/jython/?rev=5773&view=rev Author: pjenvey Date: 2008-12-17 07:09:26 +0000 (Wed, 17 Dec 2008) Log Message: ----------- forgot to proxy EnumerationIter Modified Paths: -------------- trunk/jython/Lib/test/test_java_integration.py trunk/jython/src/org/python/core/PyJavaType.java Modified: trunk/jython/Lib/test/test_java_integration.py =================================================================== --- trunk/jython/Lib/test/test_java_integration.py 2008-12-17 07:07:56 UTC (rev 5772) +++ trunk/jython/Lib/test/test_java_integration.py 2008-12-17 07:09:26 UTC (rev 5773) @@ -6,7 +6,7 @@ from test import test_support from java.awt import (Dimension, Component, Rectangle, Button, Color, HeadlessException) -from java.util import ArrayList, Vector, HashMap, Hashtable +from java.util import ArrayList, HashMap, Hashtable, StringTokenizer, Vector from java.io import FileOutputStream, FileWriter, OutputStreamWriter from java.lang import Runnable, Thread, ThreadGroup, System, Runtime, Math, Byte @@ -450,7 +450,11 @@ del m["a"] self.assertEquals(0, len(m)) + def test_enumerable_delegation(self): + tokenizer = StringTokenizer('foo bar') + self.assertEquals(list(iter(tokenizer)), ['foo', 'bar']) + def test_main(): test_support.run_unittest(AbstractOnSyspathTest, InstantiationTest, Modified: trunk/jython/src/org/python/core/PyJavaType.java =================================================================== --- trunk/jython/src/org/python/core/PyJavaType.java 2008-12-17 07:07:56 UTC (rev 5772) +++ trunk/jython/src/org/python/core/PyJavaType.java 2008-12-17 07:09:26 UTC (rev 5773) @@ -409,7 +409,7 @@ return false; } - private class EnumerationIter extends PyIterator { + private static class EnumerationIter extends PyIterator { private Enumeration<Object> proxy; @@ -495,6 +495,13 @@ }; collectionProxies.put(Iterator.class, new PyBuiltinMethod[] {iteratorProxy}); + PyBuiltinMethodNarrow enumerationProxy = new PyBuiltinMethodNarrow("__iter__", 0, 0) { + public PyObject __call__() { + return new EnumerationIter(((Enumeration)self.getJavaProxy())); + } + }; + collectionProxies.put(Enumeration.class, new PyBuiltinMethod[] {enumerationProxy}); + // Map doesn't extend Collection, so it needs its own version of len, iter and contains PyBuiltinMethodNarrow mapLenProxy = new MapMethod("__len__", 0, 0) { @Override This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |