public override void Handle(KAOSCoreElement element, ParsedFormalSpecAttribute attribute, KAOSModel model) { if (element is Predicate) { Handle(element, fb.BuildPredicateFormula((Predicate)element, attribute.Value), "FormalSpec"); } else { Handle(element, fb.BuildFormula(attribute.Value), "FormalSpec"); } }
public override void Handle(Goal element, ParsedProvidedNotAttribute attribute, KAOSModel model) { var providedNot = new GoalProvidedNot(model, element.Identifier, attribute.ObstacleIdentifier, fb.BuildFormula(attribute.Formula)); if (!model.obstacleRepository.ObstacleExists(attribute.ObstacleIdentifier)) { model.Add(new Obstacle(model) { Identifier = attribute.ObstacleIdentifier, Implicit = true }); } model.Add(providedNot); }
public override void Handle(Goal element, ParsedRelaxedToAttribute attribute, KAOSModel model) { var relaxedTo = new GoalRelaxedTo(model, element.Identifier, attribute.ObstacleIdentifier, fb.BuildFormula(attribute.Formula)); if (!model.obstacleRepository.ObstacleExists(attribute.ObstacleIdentifier)) { model.Add(new Obstacle(model) { Identifier = attribute.ObstacleIdentifier, Implicit = true }); } model.Add(relaxedTo); }