Hallo zusammen,
ich versuche gerade einen Datumsfilter für einen Eingabestring zu basteln.
Es wird ein Messagesobjekt von einem geparsten String erstellt wo die einzelnen Properties abgespeichert werden.
Das Messageobjekt soll nun einen Filter durchlaufen welcher Überprüft ob die Properties im Datumsfeld übereinstimmen oder nicht. Wenn ja, dann soll er das Msg-Objekt in das Ausgabearray hinzufügen und wenn nicht dann soll es verworfen werden.
Vorab soll er prüfen ob der Filter auf aktiv gesetzt ist.
Am besten ich schreibe euch mal meinen Quellcode der besagten stellen auf:
Hier die Klasse welche das Objekt parsed und dann die Filterklasse aufruft:
Parse-Klasse
Klasse complyFilter
Filterproperties
Meine Frage ist, wo ich die Logik implementieren müsste, damit der Filter durch das Msg-Objekt läuft.
Sprich evtl in der Klasse complyFilter?
Vielleicht kann mir ja einer von euch weiter helfen. Nen nützlichen Tipp geben oder ein Stück Quellcode den er irgendwo rumliegen hat.
Danke euch...
Euer Anfänger Hunin >.<
ich versuche gerade einen Datumsfilter für einen Eingabestring zu basteln.
Es wird ein Messagesobjekt von einem geparsten String erstellt wo die einzelnen Properties abgespeichert werden.
Das Messageobjekt soll nun einen Filter durchlaufen welcher Überprüft ob die Properties im Datumsfeld übereinstimmen oder nicht. Wenn ja, dann soll er das Msg-Objekt in das Ausgabearray hinzufügen und wenn nicht dann soll es verworfen werden.
Vorab soll er prüfen ob der Filter auf aktiv gesetzt ist.
Am besten ich schreibe euch mal meinen Quellcode der besagten stellen auf:
Hier die Klasse welche das Objekt parsed und dann die Filterklasse aufruft:
Code:
public boolean parse(){
messages = new ArrayList<LogMessage>();
try {
BufferedReader in = new BufferedReader(new FileReader(filename));
String str;
while ((str = in.readLine()) != null) {
LogMessage msg = parseLine(str);
if(complyFilter(msg)){
messages.add(msg);
}
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
Parse-Klasse
Code:
private LogMessage parseLine(String str) {
LogMessage msg = new LogMessage();
String date = str.substring(2, 10);
String time = str.substring(11, 19);
String message = str.substring(21);
String threadname = "";
String logLevel = "";
String messageData = "";
String[] splitted = message.split( ":" );
int max = splitted.length;
if (max >= 1) threadname = splitted[0];
if (max >= 2) logLevel = splitted[1];
if (max >= 3) messageData = splitted[2];
msg.setMsgDate(date);
msg.setMsgTime(time);
msg.setThreadName(threadname);
msg.setLogLevel(logLevel);
msg.setMsgData(messageData);
return msg;
}
Klasse complyFilter
Code:
private boolean complyFilter(LogMessage msg){
return true;
}
Filterproperties
Code:
public LogFilter() {
}
// ####################
// Filtermethoden Datum
// ####################
public boolean activateDate(){
return true;
}
public String getFromDate() {
return fromDate;
}
public void setFromDate(String fromDate) {
this.fromDate = fromDate;
}
public String getToDate() {
return toDate;
}
public void setToDate(String toDate) {
this.toDate = toDate;
}
}
Meine Frage ist, wo ich die Logik implementieren müsste, damit der Filter durch das Msg-Objekt läuft.
Sprich evtl in der Klasse complyFilter?
Vielleicht kann mir ja einer von euch weiter helfen. Nen nützlichen Tipp geben oder ein Stück Quellcode den er irgendwo rumliegen hat.
Danke euch...
Euer Anfänger Hunin >.<