RuleID’s tracen

Langzeitstabile RuleID’s können auch bei der Interface-Gene­rie­rung genutzt werden, hierzu muss im Java-Prolog der Ent­schei­dungs­ta­belle der Java-Gene­rie­rungs­para­me­ter $$InterfaceRuleID=true ange­ge­ben werden:

Das gene­rier­te Interface bleibt unverändert, aber das gene­rier­te Regel­modul 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 zu­sätz­lichen Werte verwendet werden: "Version" wird durch "LastRuleID" ersetzt und "RuleID" wird als zu­sätz­liche Information nach "Rule" ausgegeben:

@Override
public void doTrace(String dtName, String version,intrules,intrule) {
  System.out.println(dtName + ", " + regelModul.getLastRuleID()
    + ", " + rules + ", " + rule + ", " + regelModul.getRuleID());
}