RuleID’s tracen
Langzeitstabile RuleID’s können auch bei der Interface-Generierung genutzt werden, hierzu muss im Java-Prolog der Entscheidungstabelle der Java-Generierungsparameter $$InterfaceRuleID=true angegeben werden:
Das generierte Interface bleibt unverändert, aber das generierte Regelmodul wird durch diesen Parameter um die private Variable ruleID und um die beiden Methoden getRuleID() und getLastRuleID() erweitert…
// Prolog Standard ---->
// profile LFET.Java.Prolog.Standard.Interface.ini not found
// used LF‑ET 2.3.0 (240116a) build in default
publicfinalclassRAmpelSchaltung
{
privateStringruleID="";
publicfinalString getRuleID() {returnruleID; }
publicfinalString getLastRuleID() {return"6"; }
publicfinalvoidexecute(IAmpelSchaltung iface)
{
// Prolog Standard <----
...und im IF-ELSE-Regelbaum wird vor jedem Aufruf der Interface-Methode doTrace(...) die Variable ruleID gesetzt:
// Rule R01 ---->
ruleID="#3.6";
iface.doTrace("AmpelSchaltung","20140211.154218", 4, 1);
iface.doNeuerZustandGruenAn();
// Rule R01 <----
In der Klasse "AmpelSchaltung", die das Interface implementiert, können jetzt in der Methode doTrace(…) die zusätzlichen Werte verwendet werden: "Version" wird durch "LastRuleID" ersetzt und "RuleID" wird als zusätzliche Information nach "Rule" ausgegeben:
@Override
public void doTrace(String dtName, String version,intrules,intrule) {
System.out.println(dtName + ", " + regelModul.getLastRuleID()
+ ", " + rules + ", " + rule + ", " + regelModul.getRuleID());
}