| Generierte Dokumentation der praktischen Arbeit von Simon Tiffert |
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 |