Generierte Dokumentation der praktischen Arbeit von Simon Tiffert


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

MyLineNumberReader.java

gehe zur Dokumentation dieser Datei
00001 /*
00002  * 
00003  * Datei:   MyLineNumberReader.java
00004  * 
00005  * ---------------------------------
00006  * 
00007  * Datum:           $Date: 2004/05/13 08:48:03 $
00008  * Autor:           Simon Tiffert 
00009  * Prüfungsnummer:  40
00010  * Firma:           T-Systems
00011  * eMail-Adresse:   simon.tiffert@t-systems.com
00012  * Version:         $Revision: 1.4 $
00013  * 
00014  * ---------------------------------
00015  * 
00016  */
00017 package main.tools.eingabe;
00018 
00019 import java.io.IOException;
00020 import java.io.LineNumberReader;
00021 import java.io.Reader;
00022 
00023 /**
00024  * Klasse, welche Zeilenendkommentar überliest
00025  * 
00026  * @version $Revision: 1.4 $
00027  * @author Simon Tiffert
00028  */
00029 public class MyLineNumberReader extends LineNumberReader
00030 {
00031   //Kommentar, der überlesen werden soll
00032   private String kommentar = "";
00033 
00034   /**
00035    * Der Kommentar, der überlesen werden soll, wird definiert und 
00036    * der Standardkonstruktor der Superklasse wird aufgerufen.
00037    * 
00038    * @param reader
00039    * @param kommentar
00040    */
00041   public MyLineNumberReader(Reader reader, String kommentar)
00042   {
00043     // Konstruktor der Superklasse und setzen des Kommentars
00044     super(reader);
00045     this.kommentar = kommentar;
00046   }
00047 
00048   /**
00049    * Die Funktionalität der Supermethode wird
00050    * beibehalten, allerdings werden Zeilen, die mit
00051    * einem oben definierten Kommentar beginnen, nicht mit 
00052    * ausgegeben.
00053    * 
00054    * @see java.io.BufferedReader#readLine()
00055    */
00056   public String readLine() throws IOException
00057   {
00058     // Der Ausgabestring wird mit der ersten Zeile vorbesetzt, aus der
00059     // Kommentar und Zwischenraumzeichen entfernt wurden
00060     String ausgabe = stripLine(super.readLine());
00061 
00062     // wenn die Ausgabe nicht null ist
00063     if (ausgabe != null)
00064     {
00065       // solange nur noch ein leerer String übrig bleibt, lese
00066       // die nächste Zeile und entferne Kommentar und weitere
00067       // Zwischenraumzeichen
00068       while (ausgabe.length() == 0)
00069       {
00070         ausgabe = stripLine(super.readLine());
00071 
00072         // wenn die Zeile null ist, so gebe dies zurück
00073         if (ausgabe == null)
00074         {
00075           return ausgabe;
00076         }
00077       }
00078     }
00079 
00080     // gib die überarbeitete Zeile zurück
00081     return ausgabe;
00082   }
00083 
00084   /**
00085    * Diese Funktion entfernt Zeilenendkommentar
00086    * 
00087    * @param zeile Die Zeile, die bearbeitet werden soll
00088    * @return Die Zeile, in der kein Kommentar mehr steht
00089    */
00090   private String stripLine(String zeile)
00091   {
00092     // wenn die Zeile ungleich null ist, bearbeite sie
00093     if (zeile != null)
00094     {
00095       // wenn Kommentar vorhanden ist, schneide diesen ab
00096       if (zeile.indexOf(kommentar) >= 0)
00097       {
00098         // entferne unnötige Leerzeichen an Anfang und Ende
00099         return zeile.substring(0, zeile.indexOf(kommentar)).trim();
00100       }
00101       else
00102       {
00103         // entferne unnötige Leerzeichen an Anfang und Ende
00104         return zeile.trim();
00105       }
00106     }
00107 
00108     // gib die Zeile zurück
00109     return zeile;
00110   }
00111 }




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