Hi, ich habe ein kleines Prog dass eine Art Request System auf einem Server darstellen soll..
Ich habe 1 Interface und 3 Klassen die von Thread erben:
Interface MessageObserver: Wird von den 3 Klassen implementiert und liefert nur eine einfache Input methode.
Channel: Gibt Nachrichten an alle anhängenden Teilnehmer weiter. Teilnehmer sind Klassen vom Typ MessageObserver
Filter: Filtert über einen einfachen Regex Nachrichten in 2 Ausgänge.. also true oder false..
Rule: Kann ein beliebiges Verhalten haben. deswegen ist diese klasse bei mir abstract.
Problem: Ich hänge zum Test folgendes aneinander:
Channel 1 -> Channel 2 -> Filter -> Channel 3 -> Rule -> Channel 3
in Rule hab ich eine Klasse geschrieben die von Rule erbt. Sie zählt eine Nachricht. Wenn sie 100 mal aufgetreten ist wird sie weiter geleitet(bisher ins nichts) wenn sie noch nicht 100 mal da war wird sie zurück in Channel 3 geschickt. Läuft also wieder zurück in die Rule.
Im Konstruktor jeder Klasse starte ich mit
In meiner Testklasse starte ich dann folgenden Test:
Jetzt läuft die erste Nachricht 100 mal durch bevor die 2. Nachricht "reingepackt" wird..
Kann mir da jemand helfen?
Achja wenn ich eine run methode implementiert habe in der überprüft wird ob ein input da ist wird wieder erst die 1. nachricht 100 mal durchgearbeitet bevor die 2. dran ist
Ich habe 1 Interface und 3 Klassen die von Thread erben:
Interface MessageObserver: Wird von den 3 Klassen implementiert und liefert nur eine einfache Input methode.
Channel: Gibt Nachrichten an alle anhängenden Teilnehmer weiter. Teilnehmer sind Klassen vom Typ MessageObserver
Filter: Filtert über einen einfachen Regex Nachrichten in 2 Ausgänge.. also true oder false..
Rule: Kann ein beliebiges Verhalten haben. deswegen ist diese klasse bei mir abstract.
Problem: Ich hänge zum Test folgendes aneinander:
Channel 1 -> Channel 2 -> Filter -> Channel 3 -> Rule -> Channel 3
in Rule hab ich eine Klasse geschrieben die von Rule erbt. Sie zählt eine Nachricht. Wenn sie 100 mal aufgetreten ist wird sie weiter geleitet(bisher ins nichts) wenn sie noch nicht 100 mal da war wird sie zurück in Channel 3 geschickt. Läuft also wieder zurück in die Rule.
Im Konstruktor jeder Klasse starte ich mit
Code:
new Thread(this).start();
In meiner Testklasse starte ich dann folgenden Test:
Code:
public void test(String input) {
firstChannel.addObserver(secondChannel);
secondChannel.addObserver(firstFilter);
firstFilter.addTrueObserver(thirdChannel);
thirdChannel.addObserver(firstRule);
firstRule.addBackLoop(thirdChannel);
firstChannel.input("ab");
firstChannel.input("bla");
System.out.println("end");
}
Jetzt läuft die erste Nachricht 100 mal durch bevor die 2. Nachricht "reingepackt" wird..
Kann mir da jemand helfen?
Achja wenn ich eine run methode implementiert habe in der überprüft wird ob ein input da ist wird wieder erst die 1. nachricht 100 mal durchgearbeitet bevor die 2. dran ist