Source code: com/virtuosotechnologies/asaph/model/SongID.java
1 /*
2 ================================================================================
3
4 FILE: SongID.java
5
6 PROJECT:
7
8 Asaph
9
10 CONTENTS:
11
12 Interface to a song ID
13
14 PROGRAMMERS:
15
16 Daniel Azuma (DA) <dazuma@kagi.com>
17
18 COPYRIGHT:
19
20 Copyright (C) 2003 Daniel Azuma (dazuma@kagi.com)
21
22 This program is free software; you can redistribute it and/or
23 modify it under the terms of the GNU General Public License as
24 published by the Free Software Foundation; either version 2
25 of the License, or (at your option) any later version.
26
27 This program is distributed in the hope that it will be useful,
28 but WITHOUT ANY WARRANTY; without even the implied warranty of
29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 GNU General Public License for more details.
31
32 You should have received a copy of the GNU General Public
33 License along with this program; if not, write to
34 Free Software Foundation, Inc.
35 59 Temple Place, Suite 330
36 Boston, MA 02111-1307 USA
37
38 ================================================================================
39 */
40
41
42 package com.virtuosotechnologies.asaph.model;
43
44
45 /**
46 * A Song ID. This object identifies a Song in a SongDatabase and can be
47 * used to quickly check out a copy of the Song. SongID also contains a
48 * unique and immutable String representation that may be used to serialize
49 * and deserialize the SongID. The string is guaranteed to be unique within
50 * a particular database, and will remain the same for same song across
51 * different executions of the tool. However, two songs from different
52 * databases may have the same string representation.
53 */
54 public interface SongID
55 {
56 /**
57 * Get the database that owns this song
58 *
59 * @return SongDatabase
60 */
61 public SongDatabase getDatabase();
62
63
64 /**
65 * Get the string representation
66 *
67 * @return String
68 */
69 public String getStringRepresentation();
70
71
72 /**
73 * Equals
74 */
75 public boolean equals(
76 Object obj);
77 }