package fr.devoxx.sentimental.infra.adapter; import org.hibernate.validator.constraints.Length; import com.fasterxml.jackson.annotation.JsonProperty; import fr.devoxx.sentimental.annotation.DataTransferObject; @DataTransferObject public class SentimentReport { @Length(max = 140) private String sentence; @Length(max = 24) private String sentiment; public SentimentReport() { // Jackson deserialization } public SentimentReport(String sentence, String sentiment) { this.sentence = sentence; this.sentiment = sentiment; } @JsonProperty public String getSentence() { return sentence; } @JsonProperty public String getSentiment() { return sentiment; } @Override public int hashCode() { return 31 ^ sentence.hashCode() + sentiment.hashCode(); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof SentimentReport)) { return false; } SentimentReport other = (SentimentReport) obj; return sentence.equals(other.sentence) && sentiment.equals(other.sentiment); } @Override public String toString() { return "Sentiment for " + sentence + ": " + sentiment; } }