package io.kafka101.clickstream.rest.proxy.domain;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.util.ISO8601DateFormat;
import java.text.ParseException;
/**
* Custom class to avoid JSON / Avro fun
*/
public class ISO8601Date {
private static final ISO8601DateFormat ISO_FORMATTER = new ISO8601DateFormat();
@JsonProperty
public final String timestamp;
@JsonCreator
public ISO8601Date(String timestamp) {
this.timestamp = timestamp;
validate(timestamp);
}
private void validate(String timestamp) {
try {
ISO_FORMATTER.parse(timestamp);
} catch (ParseException e) {
throw new IllegalArgumentException(timestamp + " is not a valid ISO8601 date!");
}
}
}