Github user yashs360 commented on the issue:
https://github.com/apache/spark/pull/18029
Hi @brkyvz Thinking on these lines, Adding them as Java objects adds more
complexity to our design. We again have to think about making the objects
singleton and thread safe. The Scala case class were very simple and minimal.
This is how we would have to implement the java classes for the Initial
positions. It looks a bit unclean to me. Thoughts ?
```
abstract class InitialPosition {
public static final InitialPositionInStream initialPositionInStream =
InitialPositionInStream.LATEST;
}
class Latest extends InitialPosition {
private static final Latest instance = new Latest();
static final InitialPositionInStream initialPositionInStream =
InitialPositionInStream.LATEST;
private Latest(){}
public static InitialPosition getInstance() {
return instance;
}
}
class TrimHorizon extends InitialPosition {
private static final TrimHorizon instance = new TrimHorizon();
static final InitialPositionInStream initialPositionInStream =
InitialPositionInStream.TRIM_HORIZON;
private TrimHorizon(){}
public static InitialPosition getInstance() {
return instance;
}
}
class AtTimestamp extends InitialPosition {
static final InitialPositionInStream initialPositionInStream =
InitialPositionInStream.AT_TIMESTAMP;
Date timestamp;
private AtTimestamp(Date timestamp){
this.timestamp = timestamp;
}
public static InitialPosition getInstance(Date timestamp) {
return new AtTimestamp(timestamp);
}
}
```
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]