package org.richfaces.demo.tree; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.richfaces.model.TreeNode; public class Album implements TreeNode { /** * */ private static final long serialVersionUID = 6514596192023597908L; private long id; private Map songs = new HashMap(); private String title; private Integer year; private Artist artist; public Album(long id) { this.id = id; } public void addSong(Song song) { addChild(Long.toString(song.getId()), song); song.setParent(this); } public void addChild(Object identifier, TreeNode child) { songs.put(identifier, child); } public TreeNode getChild(Object id) { return (TreeNode) songs.get(id); } public Iterator getChildren() { return songs.entrySet().iterator(); } public Object getData() { return this; } public TreeNode getParent() { return artist; } public boolean isLeaf() { return songs.isEmpty(); } public void removeChild(Object id) { songs.remove(id); } public void setData(Object data) { } public void setParent(TreeNode parent) { this.artist = (Artist) parent; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Integer getYear() { return year; } public void setYear(Integer year) { this.year = year; } public long getId() { return id; } public Artist getArtist() { return artist; } public void setArtist(Artist artist) { this.artist = artist; } public String getType() { return "album"; } }