|
|
@@ -43,14 +43,16 @@ public class DataFrameTransformState {
|
|
|
private static final ParseField TASK_STATE = new ParseField("task_state");
|
|
|
private static final ParseField CURRENT_POSITION = new ParseField("current_position");
|
|
|
private static final ParseField GENERATION = new ParseField("generation");
|
|
|
+ private static final ParseField REASON = new ParseField("reason");
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
public static final ConstructingObjectParser<DataFrameTransformState, Void> PARSER =
|
|
|
- new ConstructingObjectParser<>("data_frame_transform_state",
|
|
|
+ new ConstructingObjectParser<>("data_frame_transform_state", true,
|
|
|
args -> new DataFrameTransformState((DataFrameTransformTaskState) args[0],
|
|
|
(IndexerState) args[1],
|
|
|
(HashMap<String, Object>) args[2],
|
|
|
- (long) args[3]));
|
|
|
+ (long) args[3],
|
|
|
+ (String) args[4]));
|
|
|
|
|
|
static {
|
|
|
PARSER.declareField(constructorArg(),
|
|
|
@@ -68,6 +70,7 @@ public class DataFrameTransformState {
|
|
|
throw new IllegalArgumentException("Unsupported token [" + p.currentToken() + "]");
|
|
|
}, CURRENT_POSITION, ObjectParser.ValueType.VALUE_OBJECT_ARRAY);
|
|
|
PARSER.declareLong(ConstructingObjectParser.optionalConstructorArg(), GENERATION);
|
|
|
+ PARSER.declareString(ConstructingObjectParser.optionalConstructorArg(), REASON);
|
|
|
}
|
|
|
|
|
|
public static DataFrameTransformState fromXContent(XContentParser parser) throws IOException {
|
|
|
@@ -78,15 +81,18 @@ public class DataFrameTransformState {
|
|
|
private final IndexerState indexerState;
|
|
|
private final long generation;
|
|
|
private final SortedMap<String, Object> currentPosition;
|
|
|
+ private final String reason;
|
|
|
|
|
|
public DataFrameTransformState(DataFrameTransformTaskState taskState,
|
|
|
IndexerState indexerState,
|
|
|
@Nullable Map<String, Object> position,
|
|
|
- long generation) {
|
|
|
+ long generation,
|
|
|
+ @Nullable String reason) {
|
|
|
this.taskState = taskState;
|
|
|
this.indexerState = indexerState;
|
|
|
this.currentPosition = position == null ? null : Collections.unmodifiableSortedMap(new TreeMap<>(position));
|
|
|
this.generation = generation;
|
|
|
+ this.reason = reason;
|
|
|
}
|
|
|
|
|
|
public IndexerState getIndexerState() {
|
|
|
@@ -106,6 +112,11 @@ public class DataFrameTransformState {
|
|
|
return generation;
|
|
|
}
|
|
|
|
|
|
+ @Nullable
|
|
|
+ public String getReason() {
|
|
|
+ return reason;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public boolean equals(Object other) {
|
|
|
if (this == other) {
|
|
|
@@ -121,11 +132,13 @@ public class DataFrameTransformState {
|
|
|
return Objects.equals(this.taskState, that.taskState) &&
|
|
|
Objects.equals(this.indexerState, that.indexerState) &&
|
|
|
Objects.equals(this.currentPosition, that.currentPosition) &&
|
|
|
- this.generation == that.generation;
|
|
|
+ this.generation == that.generation &&
|
|
|
+ Objects.equals(this.reason, that.reason);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public int hashCode() {
|
|
|
- return Objects.hash(taskState, indexerState, currentPosition, generation);
|
|
|
+ return Objects.hash(taskState, indexerState, currentPosition, generation, reason);
|
|
|
}
|
|
|
+
|
|
|
}
|