/// <inheritdoc /> public bool OnNodeList(ListValueReflection reflection, NodeReflection nodeReflection, out IList newValue) { ConfigNode[] nodes = Node.GetNodes(reflection.NodeId); var load = new LoadVisitor(); int index = 0; int i = 0; var items = new List <object>(nodes.Length); foreach (ConfigNode node in nodes) { if (!node.TryGetValue("index", ref i)) { i = index; } index++; load.Node = node; object item = nodeReflection.Load(load, out int errors); SetItem(items, item, i); if (errors > 0) { FARLogger.ErrorFormat("{0} errors while loading {1}[{2}]", errors.ToString(), node.name, i.ToString()); } } newValue = items; return(true); }
/// <inheritdoc /> public bool OnNode(object nodeObject, NodeReflection reflection, out object newValue) { ConfigNode node = string.IsNullOrEmpty(reflection.Name) ? Node.GetNode(reflection.Id) : Node.GetNode(reflection.Id, "name", reflection.Name); if (node != null) { var load = new LoadVisitor { Node = node }; int errors = reflection.Load(load, ref nodeObject); if (errors > 0) { FARLogger.ErrorFormat("{0} errors while loading {1}[{2}]", errors.ToString(), node.name, reflection.Name); } } newValue = nodeObject; return(true); }