Package ch.so.agi.mcp.tools
Class UniqueConstraintAuthoringTools
java.lang.Object
ch.so.agi.mcp.tools.UniqueConstraintAuthoringTools
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionauthorIliUniqueConstraint(String modelText, String contextFqn, IliConstraintSpec.Unique spec, @Nullable ModelPurpose modelPurpose, @Nullable ModelingRuleProfile ruleProfile) authorIliUniqueConstraint(String modelText, String contextFqn, IliConstraintSpec.Unique spec, @Nullable ModelPurpose modelPurpose, @Nullable ModelingRuleProfile ruleProfile, @Nullable Boolean includeSuccessfulTestXtf)
-
Constructor Details
-
UniqueConstraintAuthoringTools
-
-
Method Details
-
authorIliUniqueConstraint
@McpTool(name="authorIliUniqueConstraint", 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 UNIQUE Constraint mit GLOBAL-, BASKET- oder LOCAL-Scope, mehreren Schl\u00fcsselpfaden, optionalem WHERE und explizitem LOCAL-Pr\u00e4fix. Proof, AST-Roundtrip, Diff und afterReview verwenden genau einen Before- und einen After-Compile; danach ist kein reviewIliChange erforderlich. Das Tool schreibt keine Datei.", generateOutputSchema=true, annotations=) public IliAuthoringResult authorIliUniqueConstraint(@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 UNIQUE-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.Unique 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) -
authorIliUniqueConstraint
public IliAuthoringResult authorIliUniqueConstraint(String modelText, String contextFqn, IliConstraintSpec.Unique spec, @Nullable ModelPurpose modelPurpose, @Nullable ModelingRuleProfile ruleProfile)
-