Generierte Dokumentation der praktischen Arbeit von Simon Tiffert

Hauptseite | Pakete | Klassenhierarchie | Alphabetische Liste | Auflistung der Klassen | Auflistung der Dateien | Klassen-Elemente

# main.eingabe.Eingabe Klassenreferenz

Zusammengehörigkeiten von main.eingabe.Eingabe:

[Legende]
Aufstellung aller Elemente

## Ausführliche Beschreibung

Diese Klasse liest die Eingabedaten aus einer Datei aus und erstellt die Matrix, die für die spätere Verarbeitung gebraucht wird.

Version:
  Revision
    1.23

Autor:
  Simon Tiffert

Definiert in Zeile 42 der Datei Eingabe.java.

## Öffentliche Methoden
| Eingabe (Matrix matrix, String dateiName) throws UnexpectedCharacterException, UnexpectedLineException, UnknownCharacterException, TooFewCharactersException, TooFewSperrfelderException, FileNotFoundException, IOException, IsSperrfeldException, IsStartpunktException, WrongDimensionException
| Konstruktor, welcher die Matrix übernimmt, die Datei zuweist und mit diesen Daten die Funktion leseDaten() aufruft.
## Private Methoden
void | leseDaten (Reader stream) throws UnexpectedCharacterException, UnexpectedLineException, UnknownCharacterException, IOException, TooFewCharactersException, TooFewSperrfelderException, IsSperrfeldException, IsStartpunktException, WrongDimensionException
| Diese Funktion liest die Eingabedatei aus.
## Private Attribute
Matrix | matrix
| Feld für Matrix.

## Beschreibung der Konstruktoren und Destruktoren

main.eingabe.Eingabe.Eingabe | ( | Matrix | matrix,
|  | String | dateiName
| ) | throws UnexpectedCharacterException, UnexpectedLineException, UnknownCharacterException, TooFewCharactersException, TooFewSperrfelderException, FileNotFoundException, IOException, IsSperrfeldException, IsStartpunktException, WrongDimensionException

  | Konstruktor, welcher die Matrix übernimmt, die Datei zuweist und mit diesen Daten die Funktion leseDaten() aufruft. Parameter:
  matrix | Zentrale Datenstruktur mit Matrix
  dateiName | Name der Eingabedatei
  Ausnahmebehandlung:
  UnexpectedCharacterException | Unerwartetes Zeichen
  UnexpectedLineException | Unerwartete Zeile
  UnknownCharacterException | Unbekanntes Zeichen
  TooFewCharactersException | Zuwenig Zeichen angegeben
  TooFewSperrfelderException | Zuwenig Sperrfelder angegeben
  FileNotFoundException | Datei wurde nicht gefunden
  IOException | Fehler bei der Eingabe
  IsSperrfeldException | Doppeldefinition von Sperrfeld
  IsStartpunktException | Sperrfeld auf Startfeld definiert
  WrongDimensionException | Falsche Dimensionsangaben
Definiert in Zeile 64 der Datei Eingabe.java. Benutzt main.eingabe.Eingabe.leseDaten().
    00076   {
    00077     // Weise übergebene Parameter den Variablen zu
    00078     this.matrix = matrix;
    00079     File file = new File(dateiName);
    00080
    00081     // Rufe Funktion zur Abarbeitung auf
    00082     leseDaten(new FileReader(file));
    00083   }

Hier ist der Graph aller Aufrufe für diese Funktion:

## Dokumentation der Elementfunktionen

void main.eingabe.Eingabe.leseDaten | ( | Reader | stream | ) | throws UnexpectedCharacterException, UnexpectedLineException, UnknownCharacterException, IOException, TooFewCharactersException, TooFewSperrfelderException, IsSperrfeldException, IsStartpunktException, WrongDimensionException `[private]`

  | Diese Funktion liest die Eingabedatei aus. Außerdem findet hier ein Teil der Syntaxüberprüfung statt, welche die Eingabedaten auf Korrektheit überprüft. Parameter:
  stream | Reader auf Eingabedatei
  Ausnahmebehandlung:
  UnexpectedCharacterException | Unerwartetes Zeichen
  UnexpectedLineException | Unerwartete Zeile
  UnknownCharacterException | Unbekanntes Zeichen
  TooFewCharactersException | Zuwenig Zeichen angegeben
  TooFewSperrfelderException | Zuwenig Sperrfelder angegeben
  FileNotFoundException | Datei wurde nicht gefunden
  IOException | Fehler bei der Eingabe
  IsSperrfeldException | Doppeldefinition von Sperrfeld
  IsStartpunktException | Sperrfeld auf Startfeld definiert
  WrongDimensionException | Falsche Dimensionsangaben
Definiert in Zeile 102 der Datei Eingabe.java. Wird benutzt von main.eingabe.Eingabe.Eingabe().
    00113   {
    00114     // Aktuell gelesene Zeile
    00115     String zeile = "";
    00116
    00117     // Anzahl gesperrter Felder
    00118     int gesperrteFelder = 0;
    00119
    00120     // Koordinaten des aktuellen Punktes
    00121     int y = 0, x = 0;
    00122
    00123     // Lies die Datei zeilenweise und speichere dabei die
    00124     // aktuelle Zeilennummer
    00125     LineNumberReader lineNumber = new MyLineNumberReader(stream, "**");
    00126
    00127     // StringTokenizer, der einen String in Token aufteilt
    00128     StringTokenizer st;
    00129
    00130     // Lies die erste Zeile aus der Eingabedatei und verarbeite sie
    00131     if ((zeile = lineNumber.readLine()) != null)
    00132     {
    00133       st = new StringTokenizer(zeile);
    00134     }
    00135     // Wenn dies nicht klappt, ist die Datei leer und eine Exception
    00136     // wird geworfen
    00137     else
    00138     {
    00139       throw new TooFewCharactersException(
    00140         "" + lineNumber.getLineNumber());
    00141     }
    00142
    00143     // Lies die Zahlen, fange ab, wenn dabei Probleme auftauchen
    00144     try
    00145     {
    00146       // Lies die Dimensionsangaben
    00147       y = Integer.parseInt(st.nextToken());
    00148       x = Integer.parseInt(st.nextToken());
    00149     }
    00150     catch (NoSuchElementException e)
    00151     {
    00152       throw new TooFewCharactersException(
    00153         "" + lineNumber.getLineNumber());
    00154     }
    00155     catch (Exception e)
    00156     {
    00157       throw new UnknownCharacterException(
    00158         "" + lineNumber.getLineNumber());
    00159     }
    00160
    00161     // Erstelle die Matrix in der Dimension y*x
    00162     matrix.setMatrix(y, x);
    00163
    00164     // Wenn noch weitere Zeichen in der Zeile sind, werfe Fehler
    00165     if (st.hasMoreTokens())
    00166     {
    00167       throw new UnexpectedCharacterException(
    00168         "" + lineNumber.getLineNumber());
    00169     }
    00170
    00171     // Lese die zweite Zeile für den Startpunkt
    00172     // wenn keine Eingabedaten da sind, werfe Exception
    00173     if ((zeile = lineNumber.readLine()) != null)
    00174     {
    00175       st = new StringTokenizer(zeile);
    00176     }
    00177     else
    00178     {
    00179       throw new TooFewCharactersException(
    00180         "" + lineNumber.getLineNumber());
    00181     }
    00182
    00183     // Lies die Zahlen, fange ab, wenn dabei Probleme auftauchen
    00184     try
    00185     {
    00186       // Lies Koordinaten des Startpunktes
    00187       y = Integer.parseInt(st.nextToken()) - 1;
    00188       x = Integer.parseInt(st.nextToken()) - 1;
    00189     }
    00190     catch (NoSuchElementException e)
    00191     {
    00192       throw new TooFewCharactersException(
    00193         "" + lineNumber.getLineNumber());
    00194     }
    00195     catch (Exception e)
    00196     {
    00197       throw new UnknownCharacterException(
    00198         "" + lineNumber.getLineNumber());
    00199     }
    00200
    00201     // Setze den Startpunkt für die Sprungfolge
    00202     matrix.setStartpunkt(y, x);
    00203
    00204     // Wenn noch weitere Zeichen in der Zeile sind, werfe Fehler
    00205     if (st.hasMoreTokens())
    00206     {
    00207       throw new UnexpectedCharacterException(
    00208         "" + lineNumber.getLineNumber());
    00209     }
    00210
    00211     // Lies Anzahl gesperrter Felder ein (optional)
    00212     if ((zeile = lineNumber.readLine()) != null)
    00213     {
    00214       // Lies die Zahl, fange ab, wenn dabei Probleme auftauchen
    00215       try
    00216       {
    00217         gesperrteFelder = Integer.parseInt(zeile);
    00218       }
    00219       catch (Exception e)
    00220       {
    00221         throw new UnknownCharacterException(
    00222           "" + lineNumber.getLineNumber());
    00223       }
    00224
    00225       // Besetze gesperrte Felder der Matrix mit '-1'
    00226       for (int i = 0; i < gesperrteFelder; i++)
    00227       {
    00228         if ((zeile = lineNumber.readLine()) != null)
    00229         {
    00230           st = new StringTokenizer(zeile);
    00231
    00232           // Lies die Zahlen, fange ab, wenn dabei Probleme auftauchen
    00233           try
    00234           {
    00235             // Lies Koordinaten,  setze den Punkt in der Matrix
    00236             y = Integer.parseInt(st.nextToken()) - 1;
    00237             x = Integer.parseInt(st.nextToken()) - 1;
    00238           }
    00239           catch (NoSuchElementException e)
    00240           {
    00241             throw new TooFewCharactersException(
    00242               "" + lineNumber.getLineNumber());
    00243           }
    00244           catch (Exception e)
    00245           {
    00246             throw new UnknownCharacterException(
    00247               "" + lineNumber.getLineNumber());
    00248           }
    00249
    00250           // Wenn noch weitere Zeichen in der Zeile sind, werfe Fehler
    00251           if (st.hasMoreTokens())
    00252           {
    00253             throw new UnexpectedCharacterException(
    00254               "" + lineNumber.getLineNumber());
    00255           }
    00256
    00257           // Setze das ermittelte Sperrfeld
    00258           matrix.setSperrfeld(y, x);
    00259         }
    00260         else
    00261         {
    00262           throw new TooFewSperrfelderException();
    00263         }
    00264       }
    00265     }
    00266
    00267     // Wenn noch weitere Zeichen am Ende der Datei sind, werfe Fehler
    00268     if (lineNumber.readLine() != null)
    00269     {
    00270       throw new UnexpectedLineException(
    00271         "" + lineNumber.getLineNumber());
    00272     }
    00273   }

## Dokumentation der Datenelemente

Matrix main.eingabe.Eingabe.matrix`[private]`

| Feld für Matrix. Definiert in Zeile 45 der Datei Eingabe.java.

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:

- Eingabe.java

Documentation created with Doxygen 1.3.6 | Fri May 14 11:15:39 2004