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. ---