|
@@ -30,42 +30,39 @@ public class Annotation implements ToXContentObject, Writeable {
|
|
|
public static final ParseField MODIFIED_USERNAME = new ParseField("modified_username");
|
|
|
public static final ParseField TYPE = new ParseField("type");
|
|
|
|
|
|
- public static final ObjectParser<Annotation, Void> PARSER = new ObjectParser<>(TYPE.getPreferredName(), true, Annotation::new);
|
|
|
+ public static final ObjectParser<Builder, Void> PARSER = new ObjectParser<>(TYPE.getPreferredName(), true, Builder::new);
|
|
|
|
|
|
static {
|
|
|
- PARSER.declareString(Annotation::setAnnotation, ANNOTATION);
|
|
|
- PARSER.declareField(Annotation::setCreateTime,
|
|
|
+ PARSER.declareString(Builder::setAnnotation, ANNOTATION);
|
|
|
+ PARSER.declareField(Builder::setCreateTime,
|
|
|
p -> TimeUtils.parseTimeField(p, CREATE_TIME.getPreferredName()), CREATE_TIME, ObjectParser.ValueType.VALUE);
|
|
|
- PARSER.declareString(Annotation::setCreateUsername, CREATE_USERNAME);
|
|
|
- PARSER.declareField(Annotation::setTimestamp,
|
|
|
+ PARSER.declareString(Builder::setCreateUsername, CREATE_USERNAME);
|
|
|
+ PARSER.declareField(Builder::setTimestamp,
|
|
|
p -> TimeUtils.parseTimeField(p, TIMESTAMP.getPreferredName()), TIMESTAMP, ObjectParser.ValueType.VALUE);
|
|
|
- PARSER.declareField(Annotation::setEndTimestamp,
|
|
|
+ PARSER.declareField(Builder::setEndTimestamp,
|
|
|
p -> TimeUtils.parseTimeField(p, END_TIMESTAMP.getPreferredName()), END_TIMESTAMP, ObjectParser.ValueType.VALUE);
|
|
|
- PARSER.declareString(Annotation::setJobId, Job.ID);
|
|
|
- PARSER.declareField(Annotation::setModifiedTime,
|
|
|
+ PARSER.declareString(Builder::setJobId, Job.ID);
|
|
|
+ PARSER.declareField(Builder::setModifiedTime,
|
|
|
p -> TimeUtils.parseTimeField(p, MODIFIED_TIME.getPreferredName()), MODIFIED_TIME, ObjectParser.ValueType.VALUE);
|
|
|
- PARSER.declareString(Annotation::setModifiedUsername, MODIFIED_USERNAME);
|
|
|
- PARSER.declareString(Annotation::setType, TYPE);
|
|
|
+ PARSER.declareString(Builder::setModifiedUsername, MODIFIED_USERNAME);
|
|
|
+ PARSER.declareString(Builder::setType, TYPE);
|
|
|
}
|
|
|
|
|
|
- private String annotation;
|
|
|
- private Date createTime;
|
|
|
- private String createUsername;
|
|
|
- private Date timestamp;
|
|
|
- private Date endTimestamp;
|
|
|
+ private final String annotation;
|
|
|
+ private final Date createTime;
|
|
|
+ private final String createUsername;
|
|
|
+ private final Date timestamp;
|
|
|
+ private final Date endTimestamp;
|
|
|
/**
|
|
|
* Unlike most ML classes, this may be <code>null</code> or wildcarded
|
|
|
*/
|
|
|
- private String jobId;
|
|
|
- private Date modifiedTime;
|
|
|
- private String modifiedUsername;
|
|
|
- private String type;
|
|
|
+ private final String jobId;
|
|
|
+ private final Date modifiedTime;
|
|
|
+ private final String modifiedUsername;
|
|
|
+ private final String type;
|
|
|
|
|
|
- private Annotation() {
|
|
|
- }
|
|
|
-
|
|
|
- public Annotation(String annotation, Date createTime, String createUsername, Date timestamp, Date endTimestamp, String jobId,
|
|
|
- Date modifiedTime, String modifiedUsername, String type) {
|
|
|
+ private Annotation(String annotation, Date createTime, String createUsername, Date timestamp, Date endTimestamp, String jobId,
|
|
|
+ Date modifiedTime, String modifiedUsername, String type) {
|
|
|
this.annotation = Objects.requireNonNull(annotation);
|
|
|
this.createTime = Objects.requireNonNull(createTime);
|
|
|
this.createUsername = Objects.requireNonNull(createUsername);
|
|
@@ -77,19 +74,6 @@ public class Annotation implements ToXContentObject, Writeable {
|
|
|
this.type = Objects.requireNonNull(type);
|
|
|
}
|
|
|
|
|
|
- public Annotation(Annotation other) {
|
|
|
- Objects.requireNonNull(other);
|
|
|
- this.annotation = other.annotation;
|
|
|
- this.createTime = new Date(other.createTime.getTime());
|
|
|
- this.createUsername = other.createUsername;
|
|
|
- this.timestamp = new Date(other.timestamp.getTime());
|
|
|
- this.endTimestamp = other.endTimestamp == null ? null : new Date(other.endTimestamp.getTime());
|
|
|
- this.jobId = other.jobId;
|
|
|
- this.modifiedTime = other.modifiedTime == null ? null : new Date(other.modifiedTime.getTime());
|
|
|
- this.modifiedUsername = other.modifiedUsername;
|
|
|
- this.type = other.type;
|
|
|
- }
|
|
|
-
|
|
|
public Annotation(StreamInput in) throws IOException {
|
|
|
annotation = in.readString();
|
|
|
createTime = new Date(in.readLong());
|
|
@@ -131,81 +115,44 @@ public class Annotation implements ToXContentObject, Writeable {
|
|
|
}
|
|
|
out.writeOptionalString(modifiedUsername);
|
|
|
out.writeString(type);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
public String getAnnotation() {
|
|
|
return annotation;
|
|
|
}
|
|
|
|
|
|
- public void setAnnotation(String annotation) {
|
|
|
- this.annotation = Objects.requireNonNull(annotation);
|
|
|
- }
|
|
|
-
|
|
|
public Date getCreateTime() {
|
|
|
return createTime;
|
|
|
}
|
|
|
|
|
|
- public void setCreateTime(Date createTime) {
|
|
|
- this.createTime = Objects.requireNonNull(createTime);
|
|
|
- }
|
|
|
-
|
|
|
public String getCreateUsername() {
|
|
|
return createUsername;
|
|
|
}
|
|
|
|
|
|
- public void setCreateUsername(String createUsername) {
|
|
|
- this.createUsername = Objects.requireNonNull(createUsername);
|
|
|
- }
|
|
|
-
|
|
|
public Date getTimestamp() {
|
|
|
return timestamp;
|
|
|
}
|
|
|
|
|
|
- public void setTimestamp(Date timestamp) {
|
|
|
- this.timestamp = Objects.requireNonNull(timestamp);
|
|
|
- }
|
|
|
-
|
|
|
public Date getEndTimestamp() {
|
|
|
return endTimestamp;
|
|
|
}
|
|
|
|
|
|
- public void setEndTimestamp(Date endTimestamp) {
|
|
|
- this.endTimestamp = endTimestamp;
|
|
|
- }
|
|
|
-
|
|
|
public String getJobId() {
|
|
|
return jobId;
|
|
|
}
|
|
|
|
|
|
- public void setJobId(String jobId) {
|
|
|
- this.jobId = jobId;
|
|
|
- }
|
|
|
-
|
|
|
public Date getModifiedTime() {
|
|
|
return modifiedTime;
|
|
|
}
|
|
|
|
|
|
- public void setModifiedTime(Date modifiedTime) {
|
|
|
- this.modifiedTime = modifiedTime;
|
|
|
- }
|
|
|
-
|
|
|
public String getModifiedUsername() {
|
|
|
return modifiedUsername;
|
|
|
}
|
|
|
|
|
|
- public void setModifiedUsername(String modifiedUsername) {
|
|
|
- this.modifiedUsername = modifiedUsername;
|
|
|
- }
|
|
|
-
|
|
|
public String getType() {
|
|
|
return type;
|
|
|
}
|
|
|
|
|
|
- public void setType(String type) {
|
|
|
- this.type = Objects.requireNonNull(type);
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
|
|
|
builder.startObject();
|
|
@@ -254,4 +201,85 @@ public class Annotation implements ToXContentObject, Writeable {
|
|
|
Objects.equals(modifiedUsername, other.modifiedUsername) &&
|
|
|
Objects.equals(type, other.type);
|
|
|
}
|
|
|
+
|
|
|
+ public static class Builder {
|
|
|
+
|
|
|
+ private String annotation;
|
|
|
+ private Date createTime;
|
|
|
+ private String createUsername;
|
|
|
+ private Date timestamp;
|
|
|
+ private Date endTimestamp;
|
|
|
+ /**
|
|
|
+ * Unlike most ML classes, this may be <code>null</code> or wildcarded
|
|
|
+ */
|
|
|
+ private String jobId;
|
|
|
+ private Date modifiedTime;
|
|
|
+ private String modifiedUsername;
|
|
|
+ private String type;
|
|
|
+
|
|
|
+ public Builder() {}
|
|
|
+
|
|
|
+ public Builder(Annotation other) {
|
|
|
+ Objects.requireNonNull(other);
|
|
|
+ this.annotation = other.annotation;
|
|
|
+ this.createTime = new Date(other.createTime.getTime());
|
|
|
+ this.createUsername = other.createUsername;
|
|
|
+ this.timestamp = new Date(other.timestamp.getTime());
|
|
|
+ this.endTimestamp = other.endTimestamp == null ? null : new Date(other.endTimestamp.getTime());
|
|
|
+ this.jobId = other.jobId;
|
|
|
+ this.modifiedTime = other.modifiedTime == null ? null : new Date(other.modifiedTime.getTime());
|
|
|
+ this.modifiedUsername = other.modifiedUsername;
|
|
|
+ this.type = other.type;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Builder setAnnotation(String annotation) {
|
|
|
+ this.annotation = Objects.requireNonNull(annotation);
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Builder setCreateTime(Date createTime) {
|
|
|
+ this.createTime = Objects.requireNonNull(createTime);
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Builder setCreateUsername(String createUsername) {
|
|
|
+ this.createUsername = Objects.requireNonNull(createUsername);
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Builder setTimestamp(Date timestamp) {
|
|
|
+ this.timestamp = Objects.requireNonNull(timestamp);
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Builder setEndTimestamp(Date endTimestamp) {
|
|
|
+ this.endTimestamp = endTimestamp;
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Builder setJobId(String jobId) {
|
|
|
+ this.jobId = jobId;
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Builder setModifiedTime(Date modifiedTime) {
|
|
|
+ this.modifiedTime = modifiedTime;
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Builder setModifiedUsername(String modifiedUsername) {
|
|
|
+ this.modifiedUsername = modifiedUsername;
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Builder setType(String type) {
|
|
|
+ this.type = Objects.requireNonNull(type);
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Annotation build() {
|
|
|
+ return new Annotation(
|
|
|
+ annotation, createTime, createUsername, timestamp, endTimestamp, jobId, modifiedTime, modifiedUsername, type);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|