@@ -0,0 +1,2808 @@
+package cc.bran.tumblr.types;%0A%0Aimport java.util.Collection;%0Aimport java.util.List;%0Aimport java.util.Objects;%0A%0Aimport org.joda.time.Instant;%0A%0Aimport com.google.common.base.Preconditions;%0Aimport com.google.common.collect.ImmutableList;%0A%0A/**%0A * Represents a Tumblr chat post.%0A * %0A * @author Brandon Pitman (brandon.pitman@gmail.com)%0A */%0Apublic class ChatPost extends Post %7B%0A%0A  public static class Dialogue %7B%0A%0A    private final String name;%0A    %0A    private final String label;%0A    %0A    private final String phrase;%0A    %0A    public Dialogue(String name, String label, String phrase) %7B%0A      Preconditions.checkNotNull(name);%0A      Preconditions.checkNotNull(label);%0A      Preconditions.checkNotNull(phrase);%0A      %0A      this.name = name;%0A      this.label = label;%0A      this.phrase = phrase;%0A    %7D%0A    %0A    public String getName() %7B%0A      return name;%0A    %7D%0A    %0A    public String getLabel() %7B%0A      return label;%0A    %7D%0A    %0A    public String getPhrase() %7B%0A      return phrase;%0A    %7D%0A    %0A    @Override%0A    public boolean equals(Object other) %7B%0A      if (!(other instanceof Dialogue)) %7B%0A        return false;%0A      %7D%0A      Dialogue otherDialogue = (Dialogue) other;%0A      return Objects.equals(this.name, otherDialogue.name) &&%0A              Objects.equals(this.label, otherDialogue.label)&&%0A              Objects.equals(this.phrase, otherDialogue.phrase);%0A    %7D%0A    %0A    @Override%0A    public int hashCode() %7B%0A      return Objects.hash(name, label, phrase);%0A    %7D%0A  %7D%0A%0A  private final String body;%0A%0A  private final List%3CDialogue%3E dialogue;%0A%0A  private final String title;%0A%0A  public ChatPost(long id, String blogName, String postUrl, Instant postedInstant,%0A          Instant retrievedInstant, Collection%3CString%3E tags, String title, String body,%0A          List%3CDialogue%3E dialogue) %7B%0A    super(id, blogName, postUrl, postedInstant, retrievedInstant, tags);%0A    Preconditions.checkNotNull(title);%0A    Preconditions.checkNotNull(body);%0A    Preconditions.checkNotNull(dialogue);%0A%0A    this.title = title;%0A    this.body = body;%0A    this.dialogue = ImmutableList.copyOf(dialogue);%0A  %7D%0A%0A  @Override%0A  public boolean equals(Object other) %7B%0A    if (!super.equals(other)) %7B%0A      return false;%0A    %7D%0A    if (!(other instanceof ChatPost)) %7B%0A      return false;%0A    %7D%0A    ChatPost otherPost = (ChatPost) other;%0A    return Objects.equals(this.title, otherPost.title)%0A            && Objects.equals(this.body, otherPost.body)%0A            && Objects.equals(this.dialogue, otherPost.dialogue);%0A  %7D%0A%0A  public String getBody() %7B%0A    return body;%0A  %7D%0A%0A  public List%3CDialogue%3E getDialogue() %7B%0A    return dialogue;%0A  %7D%0A%0A  public String getTitle() %7B%0A    return title;%0A  %7D%0A%0A  @Override%0A  public PostType getType() %7B%0A    return PostType.CHAT;%0A  %7D%0A%0A  @Override%0A  public int hashCode() %7B%0A    return Objects.hash(title, body, dialogue);%0A  %7D%0A%7D%0A

Add ChatPost model type.