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:

Collaboration graph
[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:



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