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

Hequn Cheng commented on FLINK-11908:
-------------------------------------

Hi [~twalthr], One thing need to confirm with you is I find 
{{ExpressionParser}} is used in {{TumbleWithSize}} which makes it hard to port 
{{TumbleWithSize}} directly into the api-java module. As a choice, I think we 
can convert it into an interface and use reflection to create the 
{{TumbleWithSizeImpl}} in Tumble.over(). The code may look like:
{code:java}
@PublicEvolving
public class Tumble {
        public static TumbleWithSize over(String size) {
                try {
                        Class clazz = 
Class.forName("org.apache.flink.table.api.TumbleWithSizeImpl");
                        Constructor con = clazz.getConstructor(String.class);
                        return (TumbleWithSize) con.newInstance(size);
                } catch (Throwable t) {
                        throw new TableException("New TumbleWithSizeImpl class 
failed.", t);
                }
        }
}
{code}
What do you think?

> Port window classes into flink-api-java
> ---------------------------------------
>
>                 Key: FLINK-11908
>                 URL: https://issues.apache.org/jira/browse/FLINK-11908
>             Project: Flink
>          Issue Type: Improvement
>          Components: API / Table SQL
>            Reporter: Hequn Cheng
>            Assignee: Hequn Cheng
>            Priority: Major
>
> As discussed in FLINK-11068, it is good to open a separate issue for porting 
> the window classes before opening a PR for the {{Table}} classes. This can 
> make our PR smaller thus will be better to be reviewed.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to