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));
        }
Example #7
0
 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);
		}
Example #10
0
 public override KAOSCoreElement GetBuiltElement(ParsedDeclare parsedElement, KAOSModel model)
 {
     return(model.modelMetadataRepository.GetExpert(parsedElement.Identifier));
 }
 public override bool IsBuildable(ParsedDeclare element)
 {
     return(element is ParsedDomainHypothesis);
 }
Example #12
0
 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));
 }
Example #14
0
 public override bool IsBuildable(ParsedDeclare element)
 {
     return(element is ParsedCalibration);
 }
Example #15
0
 public abstract KAOSCoreElement GetBuiltElement(ParsedDeclare parsedElement, KAOSModel model);
Example #16
0
 public abstract bool IsBuildable(ParsedDeclare element);
Example #17
0
 public override KAOSCoreElement GetBuiltElement(ParsedDeclare parsedElement, KAOSModel model)
 {
     return(model.domainRepository.GetDomainProperty(parsedElement.Identifier));
 }
Example #18
0
 public override bool IsBuildable(ParsedDeclare element)
 {
     return(element is ParsedAgent);
 }
Example #19
0
 public override bool IsBuildable(ParsedDeclare element)
 {
     return(element is ParsedDomainProperty);
 }