public override void ProcessMap(IOrderedCompositeSpec spec, JObject inputMap, WalkedPath walkedPath, JObject output, JObject context) { // Iterate over the whole entrySet rather than the keyset with follow on gets of the values foreach (var inputEntry in inputMap) { ApplyKeyToComputed(spec.GetComputedChildren(), walkedPath, output, inputEntry.Key, inputEntry.Value, context); } }
public override void ProcessList(IOrderedCompositeSpec spec, JArray inputList, WalkedPath walkedPath, JObject output, JObject context) { int?originalSize = walkedPath.LastElement().OrigSize; for (int index = 0; index < inputList.Count; index++) { JToken subInput = inputList[index]; string subKeyStr = index.ToString(); JToken subInputOptional; if (subInput == null && originalSize.HasValue && index >= originalSize.Value) { subInputOptional = null; } else { subInputOptional = subInput; } ApplyKeyToComputed(spec.GetComputedChildren(), walkedPath, output, subKeyStr, subInputOptional, context); } }
public override void ProcessScalar(IOrderedCompositeSpec spec, string scalarInput, WalkedPath walkedPath, JObject output, JObject context) { ApplyKeyToComputed(spec.GetComputedChildren(), walkedPath, output, scalarInput, null, context); }