Package ch.so.agi.mcp.constraint
Class ConstraintModelSynthesizer
java.lang.Object
ch.so.agi.mcp.constraint.ConstraintModelSynthesizer
Binds semantic constraint references to an ili2c model and materializes concrete object graphs.
This class deliberately does not solve test goals. A solver supplies an assignment for the IR references; this class validates that assignment against INTERLIS domains/cardinalities and turns it into root/target objects, references, embedded structures and association links. Shared path prefixes are materialized only once.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordstatic final recordA bounded topology obligation; absent indices leave the normal cardinality solver unchanged.static final recordstatic final recordstatic final recordstatic final recordOne navigational step before the scalar endpoint attribute.static enumstatic final recordstatic final recordstatic final recordstatic final record -
Method Summary
Modifier and TypeMethodDescriptionbind(ch.interlis.ili2c.metamodel.TransferDescription td, String contextFqn, ConstraintExpression expression) Resolves all attribute/path references of an expression against the compiled model.bind(ch.interlis.ili2c.metamodel.TransferDescription td, String contextFqn, ConstraintExpression expression, Map<String, String> concreteTargetOverrides) Resolves an expression with explicit concrete choices for abstract navigation targets.concreteTargetFqns(ch.interlis.ili2c.metamodel.TransferDescription td, String declaredFqn) Returns all concrete ili2c subtypes for an abstract class, in stable FQN order.static StringcountedPath(ConstraintExpression.Reference reference) synthesize(ConstraintModelSynthesizer.ModelBinding binding, Map<String, Object> assignment, String oidPrefix) Materializes a complete solver assignment into an INTERLIS-shaped object graph.synthesize(ConstraintModelSynthesizer.ModelBinding binding, Map<String, Object> assignment, String oidPrefix, ConstraintModelSynthesizer.CountShape shape)
-
Method Details
-
bind
public static ConstraintModelSynthesizer.ModelBinding bind(ch.interlis.ili2c.metamodel.TransferDescription td, String contextFqn, ConstraintExpression expression) Resolves all attribute/path references of an expression against the compiled model. -
bind
public static ConstraintModelSynthesizer.ModelBinding bind(ch.interlis.ili2c.metamodel.TransferDescription td, String contextFqn, ConstraintExpression expression, Map<String, String> concreteTargetOverrides) Resolves an expression with explicit concrete choices for abstract navigation targets. Overrides are keyed by the declared abstract class FQN and are validated against ili2c's extension graph. -
synthesize
public static ConstraintModelSynthesizer.ObjectGraph synthesize(ConstraintModelSynthesizer.ModelBinding binding, Map<String, Object> assignment, String oidPrefix) Materializes a complete solver assignment into an INTERLIS-shaped object graph. -
synthesize
public static ConstraintModelSynthesizer.ObjectGraph synthesize(ConstraintModelSynthesizer.ModelBinding binding, Map<String, Object> assignment, String oidPrefix, ConstraintModelSynthesizer.CountShape shape) -
countedPath
-
concreteTargetFqns
public static List<String> concreteTargetFqns(ch.interlis.ili2c.metamodel.TransferDescription td, String declaredFqn) Returns all concrete ili2c subtypes for an abstract class, in stable FQN order.
-