Package ch.so.agi.mcp.tools
Class SetConstraintAuthoringTools
java.lang.Object
ch.so.agi.mcp.tools.SetConstraintAuthoringTools
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionauthorIliSetConstraint(String modelText, String contextFqn, IliConstraintSpec.Set spec, @Nullable ModelPurpose modelPurpose, @Nullable ModelingRuleProfile ruleProfile) authorIliSetConstraint(String modelText, String contextFqn, IliConstraintSpec.Set spec, @Nullable ModelPurpose modelPurpose, @Nullable ModelingRuleProfile ruleProfile, @Nullable Boolean includeSuccessfulTestXtf)
-
Constructor Details
-
SetConstraintAuthoringTools
-
-
Method Details
-
authorIliSetConstraint
@McpTool(name="authorIliSetConstraint", description="Skalare Ausdruecke: Zahlen als {\"kind\":\"NUMERIC\",\"value\":7}; COMPARE mit operator ==, !=, <, <=, > oder >= und genau zwei geordneten children. DEFINED/NOT haben ein Kind, IMPLIES zwei; AND/OR behalten die Reihenfolge. MANDATORY verwendet condition. Erzeugt einen typisierten SET CONSTRAINT mit perBasket/global-vs-Basket-Scope, optionalem where und diskriminierter OBJECT_COUNT- oder BOOLEAN_EXPRESSION-Condition; OBJECT_COUNT unterst\u00fctzt objectCount(ALL) und navigierte Objektmengen. Die Einf\u00fcgung ist source-preserving; Before/After je genau einmal kompiliert; constraint-level SET-IR und ilivalidator \u00fcbernehmen den Proof. Geometry-aware Funktionen werden nur bei implementierter Semantik freigegeben. Diff und afterReview verwenden dieselben Compilations. Das Tool schreibt keine Datei.", generateOutputSchema=true, annotations=) public IliAuthoringResult authorIliSetConstraint(@McpToolParam(description="Vollst\u00e4ndiger INTERLIS-Modelltext vor der Erg\u00e4nzung",required=true) String modelText, @McpToolParam(description="Vollqualifizierter Constraint-Kontext",required=true) String contextFqn, @McpToolParam(description="Typisierte SET-Spezifikation 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. Technischer Constraint-Name: [A-Za-z][A-Za-z0-9_]*, z.B. Regel42. Eine fachliche Regelnummer ist kein technischer Name; keine automatische Umbenennung. ENUM.value ist ein String, z.B. Drainage oder #Drainage, auch Gruppe.Drainage. Genau ein optionales fuehrendes # wird normalisiert; TEXT/MTEXT bleiben unveraendert. FUNCTION: name ist bei functionOrigin=STANDARD die semanticId aus listConstraintFunctions, z.B. COLLECTION_SUM statt Math.sum und NUMERIC_ADD statt Math.add. Bei MODEL/VALIDATOR_EXTENSION ist name der qualifizierte Funktionsname. Argumente stehen ausschliesslich geordnet in children, niemals in FUNCTION.objects. OBJECT_COUNT als Ausdruck liefert eine Zahl: {\"kind\":\"COMPARE\",\"operator\":\"==\",\"children\":[{\"kind\":\"OBJECT_COUNT\",\"objects\":{\"kind\":\"ALL\"}},{\"kind\":\"NUMERIC\",\"value\":1}]}. Nur die separate SET-Condition OBJECT_COUNT hat objects, operator und threshold; sie hat kein value. Ergebnis evidence trennt ausgef\u00fchrte Pr\u00fcfungen von fachlicher Akzeptanz; neue Befunde \u00e4ndern keine Freigaben.",required=true) IliConstraintSpec.Set spec, @McpToolParam(description="Modellzweck",required=false) @Nullable ModelPurpose modelPurpose, @McpToolParam(description="Regelprofil CORE, SO-GIS oder SO-DATA",required=false) @Nullable ModelingRuleProfile ruleProfile, @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) -
authorIliSetConstraint
public IliAuthoringResult authorIliSetConstraint(String modelText, String contextFqn, IliConstraintSpec.Set spec, @Nullable ModelPurpose modelPurpose, @Nullable ModelingRuleProfile ruleProfile)
-