com.virtuosotechnologies.asaph.model
Interface SongLine

All Superinterfaces:
SongMember

public interface SongLine
extends SongMember

This interface represents a line in a song. A line is made up of a sequence of SongLineMembers, which are strings, comments or chord annotations. Lines are contained within SongBlocks.


Method Summary
 int getIndentLevel()
          Get the indent level
 int getMemberCount()
          Get the number of members
 int getMemberCount(ChordSet set)
          Get the number of members in the given chord set
 SongLineMember getNextMember(SongLineMember reference)
          Get the next member following reference.
 SongLineMember getNextMember(SongLineMember reference, ChordSet set)
          Get the next member following reference.
 SongLineMember getNthMember(int n)
          Get the nth member
 SongLineMember getNthMember(int n, ChordSet set)
          Get the nth member
 SongLineMember getPreviousMember(SongLineMember reference)
          Get the previous member preceding reference.
 SongLineMember getPreviousMember(SongLineMember reference, ChordSet set)
          Get the previous member preceding reference.
 SongBlock getSongBlock()
          Get the containing song block
 ChordAnnotation insertChordAnnotationAfter(SongLineMember after, ChordSet cs, Chord primary, Chord[] preceding, Chord[] following, UndoableEditListener undoListener)
          Add a chord annotation at the given position.
 ChordAnnotation insertChordAnnotationBefore(SongLineMember before, ChordSet cs, Chord primary, Chord[] preceding, Chord[] following, UndoableEditListener undoListener)
          Add a chord annotation at the given position.
 TextString insertTextStringAfter(SongLineMember after, String type, String str, UndoableEditListener undoListener)
          Add a text string at the given position.
 TextString insertTextStringBefore(SongLineMember before, String type, String str, UndoableEditListener undoListener)
          Add a text string at the given position.
 void removeMember(SongLineMember member, UndoableEditListener undoListener)
          Remove the given member.
 void setIndentLevel(int indent, UndoableEditListener undoListener)
          Set the indent level
 
Methods inherited from interface com.virtuosotechnologies.asaph.model.SongMember
getSong, isDefunct
 

Method Detail

getSongBlock

public SongBlock getSongBlock()
Get the containing song block

Returns:
SongBlock containing this line

getIndentLevel

public int getIndentLevel()
Get the indent level

Returns:
indent level

getMemberCount

public int getMemberCount()
Get the number of members

Returns:
number of members

getNthMember

public SongLineMember getNthMember(int n)
Get the nth member

Parameters:
n - index
Returns:
member

getNextMember

public SongLineMember getNextMember(SongLineMember reference)
Get the next member following reference. If reference is null, returns the first member. If reference is the last member, returns null;

Parameters:
reference - reference SongLineMember
Returns:
next member
Throws:
IllegalArgumentException - reference is not a member

getPreviousMember

public SongLineMember getPreviousMember(SongLineMember reference)
Get the previous member preceding reference. If reference is null, returns the last member. If reference is the first member, returns null;

Parameters:
reference - reference SongLineMember
Returns:
previous member
Throws:
IllegalArgumentException - reference is not a member

getMemberCount

public int getMemberCount(ChordSet set)
Get the number of members in the given chord set

Parameters:
set - ChordSet to filter by, or null for no chords
Returns:
number of members

getNthMember

public SongLineMember getNthMember(int n,
                                   ChordSet set)
Get the nth member

Parameters:
n - index
set - ChordSet to filter by, or null for no chords
Returns:
member

getNextMember

public SongLineMember getNextMember(SongLineMember reference,
                                    ChordSet set)
Get the next member following reference. If reference is null, returns the first member. If reference is the last member, returns null;

Parameters:
reference - reference SongLineMember
set - ChordSet to filter by, or null for no chords
Returns:
next member
Throws:
IllegalArgumentException - reference is not a member

getPreviousMember

public SongLineMember getPreviousMember(SongLineMember reference,
                                        ChordSet set)
Get the previous member preceding reference. If reference is null, returns the last member. If reference is the first member, returns null;

Parameters:
reference - reference SongLineMember
set - ChordSet to filter by, or null for no chords
Returns:
previous member
Throws:
IllegalArgumentException - reference is not a member

setIndentLevel

public void setIndentLevel(int indent,
                           UndoableEditListener undoListener)
Set the indent level

Parameters:
indent - new indent level
undoListener - listener to notify if an undoable edit is generated, or null to suppress generation of undoable edits

insertTextStringBefore

public TextString insertTextStringBefore(SongLineMember before,
                                         String type,
                                         String str,
                                         UndoableEditListener undoListener)
Add a text string at the given position.

Parameters:
before - insert before this member, or at the end if null
type - type of string
str - string value
undoListener - listener to notify if an undoable edit is generated, or null to suppress generation of undoable edits
Returns:
added TextString
Throws:
IllegalArgumentException - before is not a member
NullPointerException - str or type was null

insertTextStringAfter

public TextString insertTextStringAfter(SongLineMember after,
                                        String type,
                                        String str,
                                        UndoableEditListener undoListener)
Add a text string at the given position.

Parameters:
after - insert after this member, or at the beginning if null
type - type of string
str - string value
undoListener - listener to notify if an undoable edit is generated, or null to suppress generation of undoable edits
Returns:
added TextString
Throws:
IllegalArgumentException - after is not a member
NullPointerException - str or type was null

insertChordAnnotationBefore

public ChordAnnotation insertChordAnnotationBefore(SongLineMember before,
                                                   ChordSet cs,
                                                   Chord primary,
                                                   Chord[] preceding,
                                                   Chord[] following,
                                                   UndoableEditListener undoListener)
Add a chord annotation at the given position.

Parameters:
before - insert before this member, or at the end if null
cs - ChordSet for the annotation. May not be null.
primary - primary chord for the annotation. May not be null.
preceding - array of preceding chords. May be null.
following - array of following chords. May be null.
undoListener - listener to notify if an undoable edit is generated, or null to suppress generation of undoable edits
Returns:
added ChordAnnotation
Throws:
IllegalArgumentException - before or cs is not a member
NullPointerException - cs was null

insertChordAnnotationAfter

public ChordAnnotation insertChordAnnotationAfter(SongLineMember after,
                                                  ChordSet cs,
                                                  Chord primary,
                                                  Chord[] preceding,
                                                  Chord[] following,
                                                  UndoableEditListener undoListener)
Add a chord annotation at the given position.

Parameters:
after - insert after this member, or at the beginning if null
cs - ChordSet for the annotation. May not be null.
primary - primary chord for the annotation. May not be null.
preceding - array of preceding chords. May be null.
following - array of following chords. May be null.
undoListener - listener to notify if an undoable edit is generated, or null to suppress generation of undoable edits
Returns:
added ChordAnnotation
Throws:
IllegalArgumentException - after or cs is not a member
NullPointerException - cs was null

removeMember

public void removeMember(SongLineMember member,
                         UndoableEditListener undoListener)
Remove the given member.

Parameters:
member - member to remove
undoListener - listener to notify if an undoable edit is generated, or null to suppress generation of undoable edits
Throws:
IllegalArgumentException - member is not a member
NullPointerException - member was null