Source code: com/virtuosotechnologies/asaph/model/Variation.java
1 /*
2 ================================================================================
3
4 FILE: Variation.java
5
6 PROJECT:
7
8 Asaph
9
10 CONTENTS:
11
12 Variation interface
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 variation on the verses for a song. Variations handle alternate versions
47 * that have extra verses or missing verses.
48 */
49 public interface Variation
50 extends SongMember
51 {
52 //-------------------------------------------------------------------------
53 // Accessor methods
54 //-------------------------------------------------------------------------
55
56 /**
57 * Get a SimpleString containing the name of the variation.
58 * Every Variation will have a name, even if it is the empty string.
59 *
60 * @return name
61 */
62 public SimpleString getName();
63
64
65 /**
66 * Get a string ID that can be used to serialize references to this
67 * Variation. The ID is guaranteed to be unique among Variations within
68 * the owning Song, and will remain the same for the same Variation across
69 * different executions of the tool. However, two Variations from different
70 * Songs may have the same string ID, and the same string ID may be
71 * shared between SongBlocks, Variations and ChordSets within the same
72 * Song.
73 *
74 * @return a unique serializable String ID for this Variation
75 */
76 public String getSerializableID();
77
78
79 //-------------------------------------------------------------------------
80 // Mutation methods
81 //-------------------------------------------------------------------------
82 }