From: <pj...@us...> - 2011-03-19 20:47:27
|
Revision: 7248 http://jython.svn.sourceforge.net/jython/?rev=7248&view=rev Author: pjenvey Date: 2011-03-19 20:47:21 +0000 (Sat, 19 Mar 2011) Log Message: ----------- add real/imag/numerator/denominator where applicable to the numbers Modified Paths: -------------- trunk/jython/src/org/python/core/PyComplex.java trunk/jython/src/org/python/core/PyFloat.java trunk/jython/src/org/python/core/PyInteger.java trunk/jython/src/org/python/core/PyLong.java Modified: trunk/jython/src/org/python/core/PyComplex.java =================================================================== --- trunk/jython/src/org/python/core/PyComplex.java 2011-03-19 20:39:47 UTC (rev 7247) +++ trunk/jython/src/org/python/core/PyComplex.java 2011-03-19 20:47:21 UTC (rev 7248) @@ -707,10 +707,7 @@ @ExposedMethod(doc = BuiltinDocs.complex___pos___doc) final PyObject complex___pos__() { - if (getType() == TYPE) { - return this; - } - return new PyComplex(real, imag); + return getType() == TYPE ? this : new PyComplex(real, imag); } @Override Modified: trunk/jython/src/org/python/core/PyFloat.java =================================================================== --- trunk/jython/src/org/python/core/PyFloat.java 2011-03-19 20:39:47 UTC (rev 7247) +++ trunk/jython/src/org/python/core/PyFloat.java 2011-03-19 20:47:21 UTC (rev 7248) @@ -8,6 +8,7 @@ import java.math.BigDecimal; import org.python.expose.ExposedClassMethod; +import org.python.expose.ExposedGet; import org.python.expose.ExposedMethod; import org.python.expose.ExposedNew; import org.python.expose.ExposedType; @@ -78,6 +79,16 @@ } } + @ExposedGet(name = "real", doc = BuiltinDocs.float_real_doc) + public PyObject getReal() { + return getType() == TYPE ? this : new PyFloat(value); + } + + @ExposedGet(name = "imag", doc = BuiltinDocs.float_imag_doc) + public PyObject getImag() { + return Py.newFloat(0.0); + } + /** * Determine if this float is not infinity, nor NaN. */ Modified: trunk/jython/src/org/python/core/PyInteger.java =================================================================== --- trunk/jython/src/org/python/core/PyInteger.java 2011-03-19 20:39:47 UTC (rev 7247) +++ trunk/jython/src/org/python/core/PyInteger.java 2011-03-19 20:47:21 UTC (rev 7248) @@ -7,6 +7,7 @@ import java.io.Serializable; import java.math.BigInteger; +import org.python.expose.ExposedGet; import org.python.expose.ExposedMethod; import org.python.expose.ExposedNew; import org.python.expose.ExposedType; @@ -105,6 +106,26 @@ } } + @ExposedGet(name = "real", doc = BuiltinDocs.int_real_doc) + public PyObject getReal() { + return int___int__(); + } + + @ExposedGet(name = "imag", doc = BuiltinDocs.int_imag_doc) + public PyObject getImag() { + return Py.newInteger(0); + } + + @ExposedGet(name = "numerator", doc = BuiltinDocs.int_numerator_doc) + public PyObject getNumerator() { + return int___int__(); + } + + @ExposedGet(name = "denominator", doc = BuiltinDocs.int_denominator_doc) + public PyObject getDenominator() { + return Py.newInteger(1); + } + public int getValue() { return value; } @@ -814,10 +835,7 @@ @ExposedMethod(doc = BuiltinDocs.int___int___doc) final PyInteger int___int__() { - if (getType() == TYPE) { - return this; - } - return Py.newInteger(getValue()); + return getType() == TYPE ? this : Py.newInteger(getValue()); } @Override Modified: trunk/jython/src/org/python/core/PyLong.java =================================================================== --- trunk/jython/src/org/python/core/PyLong.java 2011-03-19 20:39:47 UTC (rev 7247) +++ trunk/jython/src/org/python/core/PyLong.java 2011-03-19 20:47:21 UTC (rev 7248) @@ -8,6 +8,7 @@ import java.math.BigDecimal; import java.math.BigInteger; +import org.python.expose.ExposedGet; import org.python.expose.ExposedMethod; import org.python.expose.ExposedNew; import org.python.expose.ExposedType; @@ -129,6 +130,26 @@ return new BigDecimal(value).toBigInteger(); } + @ExposedGet(name = "real", doc = BuiltinDocs.long_real_doc) + public PyObject getReal() { + return long___long__(); + } + + @ExposedGet(name = "imag", doc = BuiltinDocs.long_imag_doc) + public PyObject getImag() { + return Py.newLong(0); + } + + @ExposedGet(name = "numerator", doc = BuiltinDocs.long_numerator_doc) + public PyObject getNumerator() { + return long___long__(); + } + + @ExposedGet(name = "denominator", doc = BuiltinDocs.long_denominator_doc) + public PyObject getDenominator() { + return Py.newLong(1); + } + @Override public String toString() { return long_toString(); @@ -876,10 +897,7 @@ @ExposedMethod(doc = BuiltinDocs.long___long___doc) final PyObject long___long__() { - if (getType() == TYPE) { - return this; - } - return Py.newLong(getValue()); + return getType() == TYPE ? this : Py.newLong(getValue()); } @Override This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |