/** * * TURTLE PLAYER * * Licensed under MIT & GPL * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE * OR OTHER DEALINGS IN THE SOFTWARE. * * More Information @ www.turtle-player.co.uk * * @author Simon Honegger (Hoene84) */ package com.turtleplayer.model; import com.turtleplayer.util.Shorty; public class ArtistDigest implements Artist { private static final String EMPTY_REPLACMENT= "Unknown"; public static final ArtistDigest NO_ARTIST = new ArtistDigest(null); private final String id; public ArtistDigest(String id) { this.id = Shorty.avoidNull(id); } public String getArtistId() { return id; } public String getArtistName() { return Shorty.isVoid(id) ? EMPTY_REPLACMENT : id; } public <R> R accept(InstanceVisitor<R> visitor) { return visitor.visit(this); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ArtistDigest artist = (ArtistDigest) o; return id.equals(artist.id); } @Override public int hashCode() { return id.hashCode(); } }