Re: [DISCUSS] Convert main Table API classes into traits

2018-03-05 Thread Timo Walther
Hi everyone, @Rong: Yes, that's what I meant. Package private and protected modifiers and fields will be moved to internal implementation. The hierachy would look like: trait TableEnvironment {   def fromTableSource(source: TableSource[_]): Table   def registerExternalCatalog(name: String,

Re: [DISCUSS] Convert main Table API classes into traits

2018-03-02 Thread Rong Rong
Hi Shuyi, I am already assuming all package private and protected modifiers will be cleaned up and moved to internal implementation. Please correct me if I were wrong, Timo. Thanks, Rong On Fri, Mar 2, 2018, 5:02 PM Shuyi Chen wrote: > Hi Timo, > > I am throwing some

Re: [DISCUSS] Convert main Table API classes into traits

2018-03-02 Thread Shuyi Chen
Hi Timo, I am throwing some second thoughts here, as I don't quite see what trait provides over abstract class here for TableEnvironment case. Trait in scala can also have implementation and you can have 'private[flink]' or 'protected' type and method in trait as well. AFAIK, the differences

Re: [DISCUSS] Convert main Table API classes into traits

2018-03-02 Thread Rong Rong
Hi Timo, Thanks for looking into this Timo. It's becoming increasingly messy for my trying to locate the correct functions in IDE :-/ This is probably due to the fact that Scala and Java access modifiers / qualifiers are subtly and fundamentally different. Using Trait might be the best solution

[DISCUSS] Convert main Table API classes into traits

2018-03-01 Thread Timo Walther
Hi everyone, I'm currently thinking about how to implement FLINK-8606. The reason behind it is that Java users are able to see all variables and methods that are declared 'private[flink]' or even 'protected' in Scala. Classes such as TableEnvironment look very messy from the outside in Java.