You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@crunch.apache.org by "Kiyan Ahmadizadeh (JIRA)" <ji...@apache.org> on 2012/09/25 03:25:07 UTC

[jira] [Updated] (CRUNCH-77) Scala PObjects should contain values of Scala types, not Java types.

     [ https://issues.apache.org/jira/browse/CRUNCH-77?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kiyan Ahmadizadeh updated CRUNCH-77:
------------------------------------

    Attachment: CRUNCH-77.patch

This patch modifies the implementation of the Scala PObject as follows:

1. PObject is now a trait with a value() method.

2. A concrete class that implements the PObject trait and is backed by a JPObject is added. This concrete class converts the value returned by the JPObject into the type of value returned by the Scala PObject, through the use of an implicit value of type Converter[J, T].  

3. Instances of the type class Converter[J, T] are created for converting values from all Java primitive types to their Scala equivalents (Byte, Short, Int, etc.)

4. An implicit function that returns an identity converter is also used (ie as a default, if there is no conversion from the type encapsulated by the JPObject to the type encapsulated by the PObject, the value from the JPObject is returned directly).

5. Implicit functions that return Converters for java.util.Collection => Seq and java.util.Map => Map are added.

6. A companion object for PObject is added, which knows how to create Scala PObjects from Java PObjects.

7. Method asSeq added to PCollectionLike.scala, so now a PObject of a Scala Seq can be obtained from a PCollection.

8. Method asMap added to PTable.scala so now a PObject of a Scala immutable Map can be obtained from a PTable.

9. Tests for asSeq and asMap are added.

10. Tests for converting Java PObjects to Scala PObjects are added for primitives, collections, and maps.  
                
> Scala PObjects should contain values of Scala types, not Java types.
> --------------------------------------------------------------------
>
>                 Key: CRUNCH-77
>                 URL: https://issues.apache.org/jira/browse/CRUNCH-77
>             Project: Crunch
>          Issue Type: Improvement
>          Components: Scrunch
>    Affects Versions: 0.4.0
>            Reporter: Kiyan Ahmadizadeh
>            Assignee: Kiyan Ahmadizadeh
>         Attachments: CRUNCH-77.patch
>
>
> The current implementation of PObjects in Scrunch simply wraps a Java PObject (JPObject) and returns a value of the same type as that returned by the underlying JPObject.  This is inconvenient, as users will likely wish to work with Scala types instead of Java types.
> PObjects in Scala should be modified to allow for conversions between Java and Scala types when returning values from the PObject.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira