Class ConstraintDecisionTableTools

java.lang.Object
ch.so.agi.mcp.tools.ConstraintDecisionTableTools

@Component public class ConstraintDecisionTableTools extends Object
  • Constructor Details

  • Method Details

    • generateIliConstraintFromDecisionTable

      @McpTool(name="generateIliConstraintFromDecisionTable", description=" Prosa: Erwartungen vorab festhalten, vor Schreiben mit testIliConstraint pr\u00fcfen. Test-modelHashes.model muss Authoring-modelHashes.after entsprechen; aktuelle Datei gegen before pr\u00fcfen. Normal includeSuccessfulTestXtf=false. INVALID_SPEC gezielt einmal korrigieren; offene Fragen kl\u00e4ren, Proof-Grenzen berichten. Serverstatus allein ist keine Schreibfreigabe. Erzeugt aus einer strukturierten Entscheidungstabelle einen INTERLIS Mandatory Constraint, leitet ueber die gemeinsame semantische IR-/Solver-Pipeline Boundary-/Kategoriefaelle ab und beweist den erzeugten Constraint mit testIliConstraint und dem echten ilivalidator. Diff und afterReview werden aus den vorhandenen Before-/After-Compilations erzeugt; danach ist kein reviewIliChange n\u00f6tig. Unterstuetzt direkte NUMERIC/BOOLEAN/ENUM-Attribute, einen einzelnen hoechstens einwertigen Association-Pfad Rolle->Attribut, SUM auf einem mehrwertigen numerischen Association-Pfad sowie DEFINED/NOT DEFINED und SUM plus direktes NUMERIC-Attribut.", generateOutputSchema=true, annotations=) public IliAuthoringResult generateIliConstraintFromDecisionTable(@McpToolParam(description="Vollstaendiger INTERLIS-2 Modelltext ohne den zu erzeugenden Constraint",required=true) String modelText, @McpToolParam(description="Vollqualifizierter Klassen- oder Strukturkontext; Strukturen werden fuer den Proof in eine vorhandene konkrete Besitzerklasse eingebettet",required=true) String context, @McpToolParam(description="Technischer Constraint-Name: [A-Za-z][A-Za-z0-9_]*, z.B. Regel42. Eine fachliche Regelnummer ist kein technischer Name; keine automatische Umbenennung.",required=true) String constraintName, @McpToolParam(description="Erlaubte Entscheidungszeilen. Standardbedingung: attribute, operator, value. Optional aggregate=SUM oder OBJECT_COUNT (Objektpfad, numerischer Vergleich; kein defined/addAttribute). Fuer Summenpraesenz: aggregate=SUM ist bei defined=true/false erforderlich, ohne operator/value/addAttribute; direkte DEFINED-Attribute gehoeren ins typisierte Authoring. Enum-Strings erlauben genau ein optionales fuehrendes #. Fuer Addition: addAttribute=<direktes NUMERIC-Attribut> zusammen mit aggregate=SUM, operator == und numerischem value.",required=true) List<ConstraintDecisionTableTools.DecisionRow> rows, @McpToolParam(description="Standard true. false l\u00e4sst nur XTF-Texte bestandener, ausge\u00fcbter F\u00e4lle mit g\u00fcltiger Fixture und null Warnungen weg; alle Diagnosen bleiben erhalten.",required=false) @Nullable Boolean includeSuccessfulTestXtf)
    • generateIliConstraintFromDecisionTable

      public IliAuthoringResult generateIliConstraintFromDecisionTable(String modelText, String context, String constraintName, List<ConstraintDecisionTableTools.DecisionRow> rows)