public void BuildElement(ParsedDeclare element, dynamic e) { foreach (dynamic attribute in element.Attributes) { Handle(e, attribute); } }
public override void BuildDeclare(ParsedDeclare parsedElement, KAOSModel model) { Entity g = model.entityRepository.GetEntity(parsedElement.Identifier); if (g == null) { g = new Entity(model, parsedElement.Identifier); model.entityRepository.Add(g); } else if (!parsedElement.Override) { throw new BuilderException("Cannot declare twice the same element. Use override instead.", parsedElement); } }
/// <summary> /// Build the elements corresponding to the parsed declare. This does not handle the attributes, which /// will be handled by the second stage builder. /// </summary> /// <returns>The element corresponding to the declared element.</returns> /// <param name="element">The parsed declare element.</param> public void BuildDeclare(ParsedDeclare element) { foreach (var builder in declareBuilders) { if (builder.IsBuildable(element)) { builder.BuildDeclare(element, model); return; } } throw new BuilderException(string.Format("Parsed element '{0}' is not supported", element.GetType()), element.Filename, element.Line, element.Col); }
public override void BuildDeclare(ParsedDeclare parsedElement, KAOSModel model) { Context context = model.modelMetadataRepository.GetContext(parsedElement.Identifier); if (context == null) { context = new Context(model, parsedElement.Identifier); model.modelMetadataRepository.Add(context); } else if (!parsedElement.Override) { throw new BuilderException("Cannot declare twice the same element. Use override instead.", parsedElement); } }
public override void BuildDeclare(ParsedDeclare parsedElement, KAOSModel model) { Obstacle g = model.obstacleRepository.GetObstacle(parsedElement.Identifier); if (g == null) { g = new Obstacle(model, parsedElement.Identifier); model.obstacleRepository.Add(g); } else if (!parsedElement.Override) { throw new BuilderException("Cannot declare twice the same element '" + parsedElement.Identifier + "'. Use override instead.", parsedElement); } }
public void BuildElement(ParsedDeclare element) { foreach (var builder in declareBuilders) { if (builder.IsBuildable(element)) { var e = builder.GetBuiltElement(element, model); if (e == null) { throw new InvalidOperationException(string.Format("Element '{0}' was not pre-built during first stage.", e.Identifier)); } BuildElement(element, e); return; } } throw new NotImplementedException(string.Format("'{0}' is not yet supported", element.GetType().Name)); }
public abstract void BuildDeclare(ParsedDeclare parsedElement, KAOSModel model);
public override bool IsBuildable(ParsedDeclare element) { return element is ParsedEntity; }
public override KAOSCoreElement GetBuiltElement(ParsedDeclare parsedElement, KAOSModel model) { return model.entityRepository.GetEntity(parsedElement.Identifier); }
public override KAOSCoreElement GetBuiltElement(ParsedDeclare parsedElement, KAOSModel model) { return(model.modelMetadataRepository.GetExpert(parsedElement.Identifier)); }
public override bool IsBuildable(ParsedDeclare element) { return(element is ParsedDomainHypothesis); }
public override KAOSCoreElement GetBuiltElement(ParsedDeclare parsedElement, KAOSModel model) { return(model.agentRepository.GetAgent(parsedElement.Identifier)); }
public override KAOSCoreElement GetBuiltElement(ParsedDeclare parsedElement, KAOSModel model) { return(model.formalSpecRepository.GetPredicate(parsedElement.Identifier)); }
public override bool IsBuildable(ParsedDeclare element) { return(element is ParsedCalibration); }
public abstract KAOSCoreElement GetBuiltElement(ParsedDeclare parsedElement, KAOSModel model);
public abstract bool IsBuildable(ParsedDeclare element);
public override KAOSCoreElement GetBuiltElement(ParsedDeclare parsedElement, KAOSModel model) { return(model.domainRepository.GetDomainProperty(parsedElement.Identifier)); }
public override bool IsBuildable(ParsedDeclare element) { return(element is ParsedAgent); }
public override bool IsBuildable(ParsedDeclare element) { return(element is ParsedDomainProperty); }