[ 
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

Reply via email to