package glaze.examples.twitter.api.stream; import glaze.examples.twitter.api.TwitterDateDeserializer; import glaze.examples.twitter.api.text.Autolink; import java.util.Date; import java.util.Map; import java.util.Set; import lombok.AccessLevel; import lombok.Data; import lombok.Getter; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; @Data public class Tweet { @Data public static class Contributor { private Long id; @JsonProperty("id_str") private String idStr; @JsonProperty("screen_name") private String screenName; } @Data public static class Coordinates { private Float[] coordinates; private String type; } @JsonDeserialize(using = TwitterDateDeserializer.class) @JsonProperty("created_at") private Date createdAt; private Set<Contributor> contributors; private Coordinates coordinates; private Boolean favorited; private Entities entities; private Long id; @JsonProperty("id_str") private String idStr; @JsonProperty("in_reply_to_screen_name") private String inReplyToScreenName; @JsonProperty("in_reply_to_status_id") private Long inReplyToStatusId; @JsonProperty("in_reply_to_status_id_str") private String inReplyToStatusIdStr; @JsonProperty("in_reply_to_user_id") private Long inReplyToUserId; @JsonProperty("in_reply_to_user_id_str") private String inReplyToUserIdStr; private Place place; @JsonProperty("possibly_sensitive") private Boolean possiblySensitive; private Map<String, Object> scopes; @JsonProperty("retweet_count") private Integer retweetCount; private Boolean retweeted; private Boolean truncated; @JsonProperty("withheld_copyright") private Boolean withheldCopyright; @JsonProperty("withheld_in_countries") private String[] withheldInCountries; @JsonProperty("withheld_scope") private String withheldScope; private String source; private String text; private User user; @JsonIgnore private String html; @Getter(AccessLevel.NONE) private static Autolink linker = new Autolink(); @JsonIgnore public String getHtml() { if (html == null) { html = linker.autoLinkEntities(text, entities); } return html; } }