Github user mushketyk commented on the issue:

    https://github.com/apache/flink/pull/3039
  
    I don't think we will win a lot with this. Even if we remove these two 
methods from the `TableSource` trait interface there is still `getTypeIndices` 
method and Java users will have to call it if they are going to implement a 
`TableSource` trait. And if a user knows how to inherit a trait with one method 
he/she will be able to inherit a trait with three methods. 
    
    The second problem with this approach is that it's not really 
Object-Oriented. We will have to rely on reflection tricks (probably sugared 
with pattern matching) while we simply having three methods is more clean OO 
solution.
    
    What if we leave all three methods and simply add some base Java 
implementations that already implement these traits? Something like 
`JavaBatchTableSource`, `JavaStreamTableSource`, and 
`JavaBatchStreamTableSource`? Then users will not need to struggle with the 
traits inheritance issues.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to