public override void ExitValueObject([NotNull] ValueObjectContext context) { base.ExitValueObject(context); var newObj = new Models.ModelCompositeObject { Value = ObjProps.Get(context.obj()) }; var orderby = ObjOrderByProps.Get(context.obj()); newObj.OrderBy.AddRange(orderby); ValueProps.Put(context, newObj); }
public override IModelObject Duplicate() { var obj = new ModelCompositeObject() { Inherits = Inherits, InheritsFrom = InheritsFrom, IsResolved = IsResolved, Modified = Modified, Modifier = Modifier, Name = Name, ParentObject = ParentObject, Value = new List <IModelObject>() }; obj.Value.AddRange(Value.Select(p => p.Duplicate())); obj.OrderBy.AddRange(OrderBy); return(obj); }
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); }