SF.net SVN: jython:[7248] trunk/jython/src/org/python/core

[email protected] Sat, 19 Mar 2011 20:47:21 +0000
Newsgroups gmane.comp.lang.jython.cvs
Message-ID <[email protected]>
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.

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d