Class Songliste

java.lang.Object
  extended by Songliste

public class Songliste
extends java.lang.Object

Speichert in einem beschränkten Array Songobjekte ab und verfügt über die Fähigkeit diese aus einer Textdatei zu lesen und diese in eine Textdatei zu schreiben

Author:
Michael Wild

Field Summary
private  int anzahl
          Anzahl der Songs die im Array aktuell gespeichert sind (anzahlSongs <= this.songs.length)
private static int DEFAULT_MAXANZAHL
          Wenn dem Konstruktor eine nicht korrekte Anzahl von Songs die verwaltet werden können übergeben wird, wird Platz für DEFAULT_MAXANZAHL Songs reserviert
private  int nummerAktueller
          Nummer des aktuellen Songs im Array
private  java.lang.String pfad
          Pfad und Dateiname jener Datei, aus welcher die Songs gelesen bzw. in welche die Songs geschrieben werden
private  Song[] songs
          Speichert in einem internen Array die Songs ab.
 
Constructor Summary
Songliste(int maxAnzahl)
          Konstruktor, der ein privates Array initialisiert in welchem maxAnzahl Songs aufgenommen werden können.
 
Method Summary
 int aendernAktuellen(Song s)
          Ändert den aktuellen Song auf den übergebenen Song ab und sortiert ihn nicht ein
 int anfuegenNeuen(Song s)
          Trägt einen neuen Song am Ende der Songliste ein.
 Song getAktueller()
          Liefert den aktuellen Song zurück auf den der Songzeiger nummerAktueller zeigt
 int getAnzahl()
          Gibt die Anzahl der Songs zurück, die momentan im Array vorhanden sind
 Song getErster()
          Liefert den ersten Song in der Songliste zurück und setzt den Songzeiger auf diesen Song.
 Song getLetzter()
          Liefert den letzten Song in der Songliste zurück und setzt den Songzeiger auf diesen Song.
 int getMaxAnzahl()
          Liefert die Maximale Anzahl von Songs zurück, die im Array abgespeichert werden können
 Song getNaechster()
          Liefert den nächsten Song - falls vorhanden - zurück und erhöht den Songzeiger nummerAktueller um Eins.
 java.lang.String getPfad()
          Liest den Dateipfad aus
 Song getVoriger()
          Liefert den vorigen Song - falls vorhanden - zurück und vermindert den Songzeiger um Eins.
 int lesenSongs()
          Lädt die Songs aus der Textdatei die in pfad vorhanden ist.
 int loeschenAktuellen()
          Löscht den aktuellen Song aus der Liste.
 int loeschenAlle()
          Löscht alle Songs aus der Liste.
 int schreibenSongs()
          Schreibt die Songs in die Textdatei.
 void setPfad(java.lang.String pfad)
          Setzt den Dateipfad auf jene Datei aus welcher die Songs gelesen bzw. in welche die Songs geschrieben werden soll
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MAXANZAHL

private static final int DEFAULT_MAXANZAHL
Wenn dem Konstruktor eine nicht korrekte Anzahl von Songs die verwaltet werden können übergeben wird, wird Platz für DEFAULT_MAXANZAHL Songs reserviert

See Also:
Constant Field Values

songs

private Song[] songs
Speichert in einem internen Array die Songs ab. Dabei werden die Songs nicht in sortierter Reihenfolge abgelegt


nummerAktueller

private int nummerAktueller
Nummer des aktuellen Songs im Array


anzahl

private int anzahl
Anzahl der Songs die im Array aktuell gespeichert sind (anzahlSongs <= this.songs.length)


pfad

private java.lang.String pfad
Pfad und Dateiname jener Datei, aus welcher die Songs gelesen bzw. in welche die Songs geschrieben werden

Constructor Detail

Songliste

public Songliste(int maxAnzahl)
Konstruktor, der ein privates Array initialisiert in welchem maxAnzahl Songs aufgenommen werden können. Ist maxAnzahl <= 0, so wird über die interne songs-Variable ein Array angelegt das DEFAULT_MAXANZAHL Songs aufnehmen kann. Weiters wird anzahl auf 0 gesetzt weil noch keine Songs in der Liste vorhanden sind und nummerAktueller auf -1, weil noch kein Song angesprungen wurde

Parameters:
maxAnzahl - die maximale Anzahl von Songs die aufgenommen werden können
Method Detail

getMaxAnzahl

public int getMaxAnzahl()
Liefert die Maximale Anzahl von Songs zurück, die im Array abgespeichert werden können

Returns:
die Anzahl der im Array maximal eintragbaren Songs

getAnzahl

public int getAnzahl()
Gibt die Anzahl der Songs zurück, die momentan im Array vorhanden sind

Returns:
die Anzahl der Songs die im Array momentan eingetragen sind
0 falls das Array zwar angelegt wurde aber noch keine Elemente enthalten sind

getAktueller

public Song getAktueller()
Liefert den aktuellen Song zurück auf den der Songzeiger nummerAktueller zeigt

Returns:
den aktuellen Song oder null, falls kein Song in der Songliste enthalten ist

getNaechster

public Song getNaechster()
Liefert den nächsten Song - falls vorhanden - zurück und erhöht den Songzeiger nummerAktueller um Eins. Gibt es keinen nächsten Song, wird null zurück geliefert und der Songzeiger nicht erhöht

Returns:
liefert den nächsten Song zurück oder null, falls dieser Song nicht vorhanden ist

getVoriger

public Song getVoriger()
Liefert den vorigen Song - falls vorhanden - zurück und vermindert den Songzeiger um Eins. Gibt es keinen vorigen Song wird null zurück geliefert und der Songzeiger nicht vermidert

Returns:
den vorigen Song

getErster

public Song getErster()
Liefert den ersten Song in der Songliste zurück und setzt den Songzeiger auf diesen Song. Ist die Liste leer, wird null zurück geliefert

Returns:
den ersten Song in der Liste

getLetzter

public Song getLetzter()
Liefert den letzten Song in der Songliste zurück und setzt den Songzeiger auf diesen Song. Ist die Liste leer, wird null zurück geliefert

Returns:
den letzten Song

setPfad

public void setPfad(java.lang.String pfad)
Setzt den Dateipfad auf jene Datei aus welcher die Songs gelesen bzw. in welche die Songs geschrieben werden soll

Parameters:
pfad -

getPfad

public java.lang.String getPfad()
Liest den Dateipfad aus

Returns:
dateipfad

anfuegenNeuen

public int anfuegenNeuen(Song s)
Trägt einen neuen Song am Ende der Songliste ein. Die Anzahl der Songs wird um Eins erhöht und die nummerAktueller wird auf diesen Song gesetzt.
Der Song wird nicht eingetragen, wenn im Array kein Platz mehr ist

Parameters:
s - der einzutragende Song
Returns:
0 falls das Eintragen erfolgreich war
-1 falls kein einzutragender Song übergeben wurde
-2 falls die Songliste keinen Platz für einen weiteren Song hat

aendernAktuellen

public int aendernAktuellen(Song s)
Ändert den aktuellen Song auf den übergebenen Song ab und sortiert ihn nicht ein

Parameters:
s - der Song der die zu ändernden Werte enthält
Returns:
0 falls die Änderung erfolgreich durchgeführt werden konnte -1 falls kein zu ändernder Song übergeben wurde
-2 falls der aktuelle Song nicht bekannt ist

loeschenAktuellen

public int loeschenAktuellen()
Löscht den aktuellen Song aus der Liste. Dies kann nur passieren, wenn die Nummer des aktuellen Songs gesetzt ist. Da im Array eine Lücke entsteht, müssen alle nachfolgenden Songs um eine Stelle nach vorne geschoben werden. Der aktuelle Song wird jener Song der dem zu löschenden Song folgt. Ist der zu löschende Song der letzte Song in der Liste, so wird der aktuelle Song jener Song der vor dem zu löschenden Song vorhanden ist. Ist der zu löschende Song der einzige in der Liste, so wird die nummerAktueller auf -1 gesetzt. Beim Löschen wird anzahl um Eins verringert

Returns:
0 falls das Löschen erfolgreich durchgeführt werden konnte
-1 falls der aktuelle Song noch nicht gesetzt wurde

loeschenAlle

public int loeschenAlle()
Löscht alle Songs aus der Liste. Setzt die Anzahl auf 0 und die Nummer des aktuellen Songs auf -1

Returns:
0 falls das Löschen erfolgreich war
-1 falls die Liste bereits leer ist

lesenSongs

public int lesenSongs()
Lädt die Songs aus der Textdatei die in pfad vorhanden ist. Dabei werden die bereits in der Songliste gespeicherten Songs gelöscht. Nach dem Einfügen sind die Songs in sortierter Reihenfolge vorhanden. Als aktueller Song wird der Erste angesprungen

Returns:
0 falls die Songs erfolgreich ein gefügt werden konnten
-1 falls der Pfad nicht gesetzt ist
-2 falls die Datei nicht zu finden ist
-3 falls ein Lesefehler in der Datei vorhanden ist
-4 das interner Array kann nicht alle Songs aufnehmen, weil es zu klein dimensioniert ist

schreibenSongs

public int schreibenSongs()
Schreibt die Songs in die Textdatei. Dabei werden die in der Datei gespeicherten Songs gelöscht

Returns:
0 falls die Songs erfolgreich ein gefügt werden konnten
-1 falls der Pfad nicht gesetzt wurde
-2 falls die Datei nicht angelegt werden konnte