コード例 #1
0
        public override void ExitPair([NotNull] PairContext context)
        {
            var fullpath = path.GetPath();

            path.Pop();
            logger.Trace("Exit pair {0}", fullpath);

            Models.IModelObject pair = null;
            if (context.pairvalue()?.value() != null)
            {
                pair = ValueProps.Get(context.pairvalue().value());
            }
            if (pair == null)
            {
                var value = new List <Models.IModelObject>();
                pair = new Models.ModelCompositeObject
                {
                    Value = value
                };
            }
            pair.Name = context.ID().GetText();

            pair.Path = fullpath;

            PairProps.Put(context, pair);
            if (context.pairvalue()?.inherits() != null)
            {
                pair.Inherits     = true;
                pair.InheritsFrom = context.pairvalue().inherits().ID().GetText();
            }
            if (context.modifier != null)
            {
                pair.Modified = true;
                pair.Modifier = context.modifier.Text;
            }
            GraphElements.Add(pair.Path, new GraphElement(pair.Path, pair));

            logger.Trace("Pair: {0}{1} = {2}{3}", pair.Modifier, pair.Name, pair.GetText() ?? "unknown", context.pairvalue()?.inherits() != null ? " : " + pair.InheritsFrom : "");

            base.ExitPair(context);
        }
コード例 #2
0
        public bool Iterate()
        {
            CurrentModel = Iterator.Iterate(Root);

            return(Iterator.HasMore);
        }
コード例 #3
0
 public IteratorManager(Models.Iterator _iterator, Models.IModelObject _currentModel)
 {
     Iterator     = _iterator;
     CurrentModel = _currentModel;
 }