Github user brkyvz commented on the issue:

    https://github.com/apache/spark/pull/18029
  
    Making them as singletons is unnecessary. How about this:
    
    ```java
    public interface InitialPosition {
        public InitialPositionInStream toKinesis();
    }
    
    public class InitialPositions {
        public static class Latest implements InitialPosition {
            public Latest() {}
            
            @Override
            public InitialPositionInStream toKinesis() {
                return InitialPositionInStream.LATEST;
            }
        }
    
        public static class TrimHorizon implements InitialPosition {
            public TrimHorizon() {}
            
            @Override
            public InitialPositionInStream toKinesis() {
                return InitialPositionInStream.TRIM_HORIZON;
            }
        }
    
        public static class AtTimestamp implements InitialPosition {
            private Date timestamp;
            
            public AtTimestamp(Date timestamp) {
                this.timestamp = timestamp;
            }
            
            @Override
            public InitialPositionInStream toKinesis() {
                return InitialPositionInStream.AT_TIMESTAMP;
            }
    
            public Date getTimestamp() {
                return timestamp;
            }
        }
    }
    ```


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to