Recording.java

package com.ociweb.demo; import com.ociweb.lang.ObjectUtil; import java.util.*; /** * This is just a Java Bean. */ public class Recording { private Artist artist; private List<Track> tracks = new ArrayList<Track>(); private String title; private int year; public Recording() {} public Recording(Artist artist, String title, int year) { // Note that JSON-lib can't handle circular dependencies // so the Recording objects can't hold a reference to their Artist // because the Artist holds a reference to them. // This is why we're not holding onto the Artist here. //this.artist = artist; this.title = title; this.year = year; } public void addTrack(Track track) { tracks.add(track); } public Track addTrack(String name, int rating) { Track t = new Track(this, name, rating); addTrack(t); return t; } public boolean equals(Object obj) { if (obj == null) return false; if (obj == this) return true; if (!(obj instanceof Recording)) return false; Recording r = (Recording) obj; boolean sameArtist = artist == null ? r.artist == null : ObjectUtil.equals(artist.getName(), r.artist.getName()); return sameArtist && ObjectUtil.equals(title, r.title) && year == r.year; } public Artist getArtist() { return artist; } public void setArtist(Artist artist) { this.artist = artist; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public List<Track> getTracks() { return tracks; } public void setTracks(List<Track> tracks) { this.tracks = tracks; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public String toString() { return "Recording: " + title + " by " + (artist == null ? "null" : artist.getName()) + " from " + year; } }

Copyright © 2007 Object Computing, Inc. All rights reserved.