package org.springframework.data.mongodb.examples.music; import org.springframework.util.Assert; import org.springframework.util.StringUtils; /** * @author Oliver Gierke */ public class Track { private int number; private Stars rating; private String name; /** * Creates a new {@link Track} with the given number and name. * * @param number * @param name */ public Track(int number, String name) { Assert.isTrue(number > -1, "Track number must be positive or 0!"); Assert.isTrue(StringUtils.hasText(name), "Track name must be given!"); this.number = number; this.name = name; } public String getName() { return name; } public int getNumber() { return number; } public Stars getRating() { return rating; } public void setRating(Stars rating) { this.rating = rating; } /* * (non-Javadoc) * * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || !getClass().equals(obj.getClass())) { return false; } Track that = (Track) obj; boolean numberEqual = this.number == that.number; boolean nameEqual = this.name.equals(that.name); return numberEqual && nameEqual; } /* * (non-Javadoc) * * @see java.lang.Object#hashCode() */ @Override public int hashCode() { int result = 17; result += 31 * number; result += 31 * name.hashCode(); return result; } }