4 public class AlbumEntry
extends Entry
implements Comparable
{
6 protected ArtistEntry artist
;
7 protected Vector songs
;
8 protected int songcount
;
10 public AlbumEntry(String n
) {
17 protected class SongSorter
implements Comparator
{
18 public int compare(Object o1
, Object o2
) {
19 SongEntry s1
=(SongEntry
)o1
;
20 SongEntry s2
=(SongEntry
)o2
;
21 int track1
=s1
.getTrack(),track2
=s2
.getTrack();
24 else if(track1
<track2
)
26 return s1
.getFile().getFile().getName().compareTo(s2
.getFile().getFile().getName());
30 public void addSong(SongEntry e
) {
35 Collections
.sort(songs
,new SongSorter());
38 public int size() { return songcount
; }
39 public void setArtist(ArtistEntry a
) {
41 if(artist
!=null&&artist
!=a
&&!artist
.getName().equals("<various artists>")) {
42 artist
.removeAlbum(this);
43 artist
=TagDatabase
.getInstance().getArtistEntry("<various artists>");
48 public ArtistEntry
getArtist() { return artist
; }
50 public int compareTo(Object o
) {
51 return String
.CASE_INSENSITIVE_ORDER
.compare(name
,((AlbumEntry
)o
).getName());
54 public String
getName() { return name
; }
55 public Collection
getSongs() { return songs
; }
56 public void write(DataOutputStream w
) throws IOException
{
59 for(x
=TagDatabase
.getInstance().albumlen
-name
.length();x
>0;x
--)
61 w
.writeInt(artist
.getOffset());
62 Iterator i2
= songs
.iterator();
65 Entry e
= (Entry
) i2
.next();
66 w
.writeInt(e
.getOffset());
69 for(;x
<TagDatabase
.getInstance().songarraylen
;x
++)
72 public static int entrySize() {
73 TagDatabase td
=TagDatabase
.getInstance();
74 return td
.albumlen
+4+td
.songarraylen
*4;