Class Ruleset

All Implemented Interfaces:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public class Ruleset extends DefaultHandler

Überschrift: Ruleset.

Beschreibung: Klasse für eine Sammlung von ELOas-Regeln.

Copyright: Copyright (c) ELO Digital Office GmbH 2018 - 2022

  • Field Details

  • Constructor Details

    • Ruleset

      public Ruleset(IXconnect ixConnect, String tempDir, byte[] xmlText, MaskInfo maskInfo) throws SAXException
      XML Datenstrom einlesen
      Parameters:
      ixConnect - Indexserver-Verbindung
      tempDir - Temporäres Verzeichnis
      xmlText - das Byte-Array mit den XML-Daten vom Client
      maskInfo - Objekt mit den Maskeninformationen
      Throws:
      SAXException - bei Parser-Fehlern
    • Ruleset

      public Ruleset()
      Erzeugt einen neuen leeren Ruleset
  • Method Details

    • getScriptStatus

      public String getScriptStatus()
      Liefert den aktuellen Wert des ScriptStatus zurück. Dieses Feld speichert einen Status-Wert der vom Skript verwaltet wird und in der Status Seite angezeigt wird.
      Returns:
      aktueller Wert
    • setScriptStatus

      public void setScriptStatus(String status)
      Setzt den Wert des SkriptStatus auf einen neuen Wert.
      Parameters:
      status - neuer Wert
    • getJScript

      public String getJScript()
      Liefert die übersetzte JavaScript Information zurück.
      Returns:
      JavaScript Code zum Ruleset
    • stop

      public void stop()
      Setzt das Stop Flag im Ruleset damit die JavaScript Libs ihre internen Schleifen beenden.
    • getStop

      public boolean getStop()
      Gibt den Status des Stop Flags zurück.
      Returns:
      Stop-Flag
    • setJScript

      public void setJScript(String jScript)
      Speichert den zum Ruleset compilierten JavaScript Code. Dieser kann dann später zu debugging Zwecken angezeigt werden.
      Parameters:
      jScript - Erzeugter JavaScript Code.
    • isChanged

      public boolean isChanged()
      Gibt an, ob der aktuelle Ruleset verändert wurde.
      Returns:
      Geändert
    • isValid

      public boolean isValid()
      Meldet zurück, ob der aktuelle Ruleset gültig ist. Ein Ruleset kann ungültig sein, weil beim Laden oder Parsen der XML Struktur ein Fehler aufgetreten ist.
      Returns:
      Gültiger Ruleset
    • isPaused

      public boolean isPaused()
      Gibt an, ob der Ruleset gestoppt ist oder läuft.
      Returns:
      Ruleset ist gestoppt
    • setPaused

      public void setPaused(boolean paused)
      Setzt den Ruleset auf gestoppt oder laufend.
      Parameters:
      paused - Status
    • getValidRuleset

      public boolean getValidRuleset()
      Meldet zurück ob ein Ruleset aktiv und gültig ist.
      Returns:
      Ruleset gültig
    • setValidRuleset

      public void setValidRuleset(boolean validRuleset)
      Setzt die angegebene Eigenschaft für die Gültigkeit des Regelsatzes.
      Parameters:
      validRuleset - Gültiger Regelsatz
    • invalidate

      public void invalidate()
      Markiert den Ruleset als ungültig.
    • getStatusMessage

      public String getStatusMessage()
      Liefert die aktuelle Statusnachricht zurück.
      Returns:
      Aktueller Status
    • setStatusMessage

      public void setStatusMessage(String value)
      Setzt die angegebene Statusnachricht.
      Parameters:
      value - Neuer Status
    • setToErrorState

      public void setToErrorState()
      Setzt die Statusnachricht auf den Fehlerzustand.
    • setDownloadFile

      public void setDownloadFile(String fileName, String contentType)
      Setzt den Namen und den ContentType der Datei, die zurückgeliefert wird.
      Parameters:
      fileName - Dateiname
      contentType - ContentType
    • getDownloadFileName

      public String getDownloadFileName()
      Liefert den Namen der Datei, die zum Download angeboten wird.
      Returns:
      Name der Download-Datei
    • getDownloadFileContentType

      public String getDownloadFileContentType()
      Liefert den ContentType der Datei, die zum Download angeboten wird.
      Returns:
      ContentType der Download-Datei
    • getGuid

      public String getGuid()
      Liest die GUID des ELO Objekts zu diesem Ruleset
      Returns:
      aktueller Status
    • setGuid

      public void setGuid(String value)
      Setzt die GUID des ELO Objekts zu diesem Ruleset
      Parameters:
      value - Neuer Status
    • getRulesetName

      public String getRulesetName()
      Liefert den Namen des Rulesets zurück.
      Returns:
      Name
    • setRulesetName

      public void setRulesetName(String value)
      Setzt den Namen des Rulesets.
      Parameters:
      value - Neuer Name
    • setSearchName

      public void setSearchName(String value)
      Setzt den Namen der Such-Indexzeile
      Parameters:
      value - Neuer Name
    • setSearchValue

      public void setSearchValue(String value)
      Setzt den Inhalt der Such-Indexzeile
      Parameters:
      value - Neuer Name
    • getMasksList

      public HashSet<Integer> getMasksList()
      Gibt das HashSet mit der Liste der zusätzlichen Ablagemasken zurück.
      Returns:
      Ablagemasken
    • getMasks

      public HashSet<Integer> getMasks()
      Gibt das HashSet mit der Liste der zusätzlichen Ablagemasken zurück.
      Returns:
      Ablagemasken
    • setMasks

      public void setMasks(HashSet<Integer> newMasks)
      Setzt die angegebene Liste mit den zusätzlichen Ablagemasken.
      Parameters:
      newMasks - Liste mit zusätzlichen Ablagemasken
    • getRules

      public ArrayList<Rule> getRules()
      Gibt die Liste der Regeln des aktuellen Rulesets zurück.
      Returns:
      Regelliste
    • setRules

      public void setRules(ArrayList<Rule> newRules)
      Setzt die angegebene Liste mit den Regeln des aktuellen Rulesets.
      Parameters:
      newRules - Liste mit den Regeln des Rulesets
    • getIncludes

      public ArrayList<String> getIncludes()
      Liefert die Liste mit den zu ladenden Modulen(Includes) zurück.
      Returns:
      Liste mit den zu ladenden Modulen
    • setIncludes

      public void setIncludes(ArrayList<String> newIncludes)
      Setzt die angegebene Liste mit den zu ladenden Modulen.
      Parameters:
      newIncludes - Liste mit den zu ladenden Modulen
    • getiDateFrom

      public String getiDateFrom()
      Gibt die aktuelle Einstellung der Sucheinschränkung für das interne Ablagedatum zurück.
      Returns:
      Startdatum
    • getiDateTo

      public String getiDateTo()
      Gibt die aktuelle Einstellung der Sucheinschränkung für das interne Ablagedatum zurück.
      Returns:
      Endedatum
    • getxDateFrom

      public String getxDateFrom()
      Gibt die aktuelle Einstellung der Sucheinschränkung für das Dokumentendatum zurück.
      Returns:
      Startdatum
    • getxDateTo

      public String getxDateTo()
      Gibt die aktuelle Einstellung der Sucheinschränkung für das Dokumentendatum zurück.
      Returns:
      Endedatum
    • setiDateFrom

      public void setiDateFrom(String value)
      Setzt die Sucheinschränkung für das interne Ablagedatum
      Parameters:
      value - Startdatum
    • setiDateTo

      public void setiDateTo(String value)
      Setzt die Sucheinschränkung für das interne Ablagedatum
      Parameters:
      value - Endedatum
    • setxDateFrom

      public void setxDateFrom(String value)
      Setzt die Sucheinschränkung für das Dokumentendatum
      Parameters:
      value - Startdatum
    • setxDateTo

      public void setxDateTo(String value)
      Setzt die Sucheinschränkung für das Dokumentendatum
      Parameters:
      value - Endedatum
    • getInterval

      public Intervall getInterval()
      Gibt das Intervall Objekt für die Wiederholungsrate zurück.
      Returns:
      Intervall
    • setInterval

      public void setInterval(Intervall value)
      Setzt die Intervall Definition zum Ruleset.
      Parameters:
      value - Intervall
    • getContentType

      public String getContentType()
      Liefert den ContentType zurück.
      Returns:
      ContentType
    • setContentType

      public void setContentType(String newContentType)
      Setzt den angegebenen ContentType.
      Parameters:
      newContentType - ContentType
    • getRuleReport

      public RuleReport getRuleReport()
      Liefert das Objekt für den Regel-Report zurück.
      Returns:
      Objekt für den Regel-Report
    • setRuleReport

      public void setRuleReport(RuleReport ruleReport)
      Setzt das Objekt für den Regel-Report.
      Parameters:
      ruleReport - Objekt für den Regel-Report
    • setConfigName

      public void setConfigName(String newConfigName)
      Setzt die angegebene Bezeichnung der Konfiguration
      Parameters:
      newConfigName - Bezeichnung der Konfiguration
    • getConfigName

      public String getConfigName()
      Liefert die Bezeichnung der Konfiguration zurück.
      Returns:
      Bezeichnung der Konfiguration
    • setConfigPath

      public void setConfigPath(String newConfigPath)
      Setzt den angegebenen Konfigurationspfad.
      Parameters:
      newConfigPath - Konfigurationspfad
    • getConfigPath

      public String getConfigPath()
      Liefert den Konfigurationspfad zurück.
      Returns:
      Konfigurationspfad
    • getScriptOnStart

      public String getScriptOnStart()
      Gibt das Skript für die Start Operation zurück. Dieser Wert ist nur vorhanden, wenn er vorher durch setOnStart gesetzt wurde.
      Returns:
      JavaScript Code für die Startbearbeitung
    • setScriptOnStart

      public void setScriptOnStart(String value)
      Setzt den JavaScript Code für die Start Operation.
      Parameters:
      value - JavaScript Code
    • getScriptOnEnd

      public String getScriptOnEnd()
      Gibt das Skript für die Ende Operation zurück. Dieser Wert ist nur vorhanden, wenn er vorher durch setOnEnd gesetzt wurde.
      Returns:
      JavaScript Code für die Endebearbeitung
    • setScriptOnEnd

      public void setScriptOnEnd(String value)
      Setzt den JavaScript Code für die Ende Operation.
      Parameters:
      value - JavaScript Code
    • getMoreResults

      public boolean getMoreResults()
      Gibt an, ob es weitere Treffer in der Suchliste gibt.
      Returns:
      Weitere Treffer vorhanden
    • setMoreResults

      public void setMoreResults(boolean value)
      Setzt das Flag, ob es weitere Treffer in der Suchliste gibt.
      Parameters:
      value - weitere Treffer vorhanden
    • ruleCount

      public int ruleCount()
      Gibt die Anzahl der Regeln im aktuellen Ruleset zurück. Ein leerer Ruleset liefert eine 0.
      Returns:
      Anzahl der Regeln
    • getRule

      public Rule getRule(int index)
      Gibt die selektierte Regel zurück. Der Index liegt zwischen 0 und ruleCount(). Beim Zugriff auf einen nicht vorhandenen Index wird eine Range Exception geworfen.
      Parameters:
      index - Nummer der Regel, beginnt mit 0.
      Returns:
      Gewählte Regel
    • getSearchName

      public String getSearchName()
      Gibt den Namen der Indexzeile für die Suche zurück. Bei einer Bearbeitung der Wiedervorlage wird der Pseudoname "ELO_Reminder" verwendet, bei der Bearbeitung der Workflowliste "ELO_Workflow".
      Returns:
      Name der Suchindexzeile
    • getSearchValue

      public String getSearchValue()
      Wert der Suche. Die Pseudozeilen "ELO_Reminder" und "ELO_Workflow" haben keinen Wert für den Suchbereich, hier wird dieser Eintrag ignoriert.
      Returns:
      Suchbereich
    • getSearchMask

      public String getSearchMask()
      Gibt die in der Ruleset definierte Suchmaske zurück. Das kann eine ID, GUID oder Maskennamen sein.
      Returns:
      ID, GUID oder Maskenname
    • getRealSearchMask

      public int getRealSearchMask()
      Liefert die ID der tatsächliche Maske zurück.
      Returns:
      ID der tatsächlichen Maske
    • getRealSearchMaskGuid

      public String getRealSearchMaskGuid()
      Liefert die GUID der tatsächlichen Maske zurück
      Returns:
      GUID der tatsächlichen Maske
    • setSearchMask

      public void setSearchMask(String maskId)
      Setzt die definierte Suchmaske
      Parameters:
      maskId - Maskennummer
    • setSearchMaskGuid

      public void setSearchMaskGuid(String maskIdText)
      Setzt den Namen oder die Id der Suchmaske.
      Parameters:
      maskIdText - Name oder Id der Suchmaske
    • getSearchMax

      public int getSearchMax()
      Gibt die definierte Größe des ResultSet zurück
      Returns:
      Anzahl
    • setSearchMax

      public void setSearchMax(int count)
      Setzt die definierte ResultSet Größe
      Parameters:
      count - Anzahl
    • setSearchMax

      public void setSearchMax(String countText)
      Setzt die definierte ResultSet Größe
      Parameters:
      countText - Anzahl
    • addRule

      public void addRule(Rule rule, int position)
      Fügt eine neue Rule an einer vorgegebenen Position hinzu. Falls die Position -1 oder größer als die Anzahl der vorhandenen Regeln ist, wird die neue Regel am Ende der Liste angehangen.
      Parameters:
      rule - Neue Regel
      position - Position
    • moveRule

      public void moveRule(int indexFrom, int indexTo)
      Verschiebt eine Regel an eine andere Stelle
      Parameters:
      indexFrom - Index der zu verschiebenden Regel
      indexTo - Ziel Index
    • deleteRule

      public void deleteRule(int index)
      Löscht eine Regel aus der Liste
      Parameters:
      index - der zu löschenden Regel
    • getExecutionCount

      public int getExecutionCount()
      Gibt die Anzahl der Aktivierungen/Weiterschaltungen zurück
      Returns:
      Anzahl
    • incExecutionCount

      public void incExecutionCount()
      Erhöht den Ausführungszähler
    • getStartSys

      public String getStartSys()
      Erzeugt die Startdefinition für den namespace sys
      Returns:
      Text mit der Startdefinition
    • getEndSys

      public String getEndSys() throws Exception
      Erzeugt den Abschluss für den namespace "sys".
      Returns:
      Text mit Abschluss
      Throws:
      Exception
    • getPadding

      public String getPadding()
      Erzeugt den Abschluss des generierten JavaScript Codes.
      Returns:
      Abschluss des JavaScript Codes
    • waitForTrigger

      public boolean waitForTrigger()
      Gibt an, ob der Ruleset auf eine manuelle Aktivierung wartet. Nur Rulesets mit einem manuellen Trigger können auf eine Aktivierung warten. Rulesets mit periodischen Trigger warten nicht.
      Returns:
      Warten auf eine manuelle Aktivierung
    • addTrigger

      public void addTrigger(Integer userId, String param1, String param2, String param3) throws Exception
      Nimmt einen weiteren Trigger aus einem "run" Aufruf in die Ausführungsliste auf.
      Parameters:
      userId - Benutzer ID
      param1 - Erstes Parameter
      param2 - Zweites Parameter
      param3 - Drittes Parameter
      Throws:
      Exception
    • addTrigger2

      protected void addTrigger2(TriggerInfo triggerInfo) throws Exception
      Nimmt einen weiteren Trigger aus einem "run" Aufruf in die Ausführungsliste auf.
      Parameters:
      triggerInfo - Objekt mit den Aufrufparametern
      Throws:
      Exception
    • getTrigger

      public TriggerInfo getTrigger()
      Gibt das nächste verfügbare Trigger Objekt zurück.
      Returns:
      Trigger Objekt oder null (kein weiteres Objekt verfügbar)
    • compileIndexVars

      public String compileIndexVars(MaskInfo maskInfo, int maskId)
      Erzeugt die JavaScript Zeilen für alle vorhandenen Indexzeilen aus der Suchmaske und allen angegebenen möglichen Zielmasken.
      Parameters:
      maskInfo - Maskendefinitionen
      maskId - Suchmaske
      Returns:
      JavaScript code
    • compileProcessRules

      public String compileProcessRules()
      Erzeugt die JavaScript Funktion ProcessRules zum Aufruf aller Regeln
      Returns:
      JavaScript Funktion
    • compileRule

      public String compileRule(int ruleIndex)
      Erzeugt den JavaScript Code zu einer Rule-Definition
      Parameters:
      ruleIndex - Regelindex
      Returns:
      JavaScript Code der Regel
    • compileGetSetIndexLines

      public String compileGetSetIndexLines(MaskInfo maskInfo, int maskId)
      Erzeugt Lade- und Speicherroutinen für die Indexzeilenzugriffe. Die Ladezugriffe müssen nur für die Suchmaske definiert werden, die Speicherzugriffe hingegen für jede mögliche Zielmaske. Vor dem Speichern muss dann die aktuelle Maske geprüft werden und die entsprechende Speicherroutine aufgerufen werden.
      Parameters:
      maskInfo - Maskendefinitionen
      maskId - Suchmaske
      Returns:
      JavaScript Code
    • compileBase

      public String compileBase()
      Erzeugt die Basisdeklarationen und Funktionen zu einer Rule.
      Returns:
      Basisdeklarationen und Funktionen einer Regel
    • asXml

      public String asXml(IXconnect currIxConnect)
      Gibt die XML-Struktur zum aktuellen Ruleset-Inhalt zurück.
      Parameters:
      currIxConnect - Indexserver-Verbindung
      Returns:
      XML-Text
    • startElement

      public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException
      XML Callback, hier wird das key-Tag ausgewertet.
      Specified by:
      startElement in interface ContentHandler
      Overrides:
      startElement in class DefaultHandler
      Parameters:
      uri - siehe Klasse DefaultHandler
      localName - siehe Klasse DefaultHandler
      qName - siehe Klasse DefaultHandler
      atts - siehe Klasse DefaultHandler
      Throws:
      SAXException - bei Fehlern
    • endElement

      public void endElement(String uri, String name, String qName) throws SAXException
      Specified by:
      endElement in interface ContentHandler
      Overrides:
      endElement in class DefaultHandler
      Throws:
      SAXException
    • characters

      public void characters(char[] ch, int start, int len)
      Specified by:
      characters in interface ContentHandler
      Overrides:
      characters in class DefaultHandler