flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fabian Hueske (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-3002) Add an EitherType to the Java API
Date Fri, 13 Nov 2015 11:09:10 GMT

    [ https://issues.apache.org/jira/browse/FLINK-3002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15003853#comment-15003853

Fabian Hueske commented on FLINK-3002:

I would not implement Either as an abstract class, but as a class with two generics {{Either<Left,
Right>}} and three constructors:
- Either() (empty default constructor)
- Either(Left)
- Either(Right)

Also add two methods {{isLeft()}} and {{isRight()}} and getters to fetch the left or right

It is correct, that you will also need a TypeInformation and a Serializer. We also need a
TypeComparator if we want to use Either as a key.
The TypeInformation is not used at execution time and does not need to distinguish left or
right Either objects.
The serializer can check if an Either object is left or right (by calling {{o.isLeft()}})
and serialize a byte flag to distinguish the cases when objects are deserialized.

The Either type should to to {{flink-java}} similar to the tuple types.

> Add an EitherType to the Java API
> ---------------------------------
>                 Key: FLINK-3002
>                 URL: https://issues.apache.org/jira/browse/FLINK-3002
>             Project: Flink
>          Issue Type: New Feature
>          Components: Java API
>    Affects Versions: 0.10
>            Reporter: Stephan Ewen
>            Assignee: Vasia Kalavri
>             Fix For: 1.0
> Either types are recurring patterns and should be serialized efficiently, so it makes
sense to add them to the core Java API.
> Since Java does not have such a type as of Java 8, we would need to add our own version.
> The Scala API handles the Scala Either Type already efficiently. I would not use the
Scala Either Type in the Java API, since we are trying to get the {{flink-java}} project "Scala
free" for people that don't use Scala and o not want to worry about Scala version matches
and mismatches.

This message was sent by Atlassian JIRA

View raw message