Exemplo n.º 1
0
        protected ReadResults ValidateChildren(JsonObject obj, string key, ComponentReader componentReader, Components components, IStringReader reader, int start, DispatcherResources resources)
        {
            ReadResults readResults;

            foreach (KeyValuePair <string, ComponentArgument> child in Children)
            {
                if (obj.ContainsKey(child.Key))
                {
                    readResults = child.Value.Validate(obj, child.Key, componentReader, components, reader, start, resources);
                    if (MatchFirst || !readResults.Successful)
                    {
                        return(readResults);
                    }
                }
                else if (!child.Value.Optional && !MatchFirst)
                {
                    reader.SetCursor(start);
                    return(ReadResults.Failure(ComponentCommandError.IncompleteComponent(key, this).WithContext(reader)));
                }
            }
            if (MatchFirst)
            {
                reader.SetCursor(start);
                return(ReadResults.Failure(ComponentCommandError.UnknownComponent(obj).WithContext(reader)));
            }
            return(ReadResults.Success());
        }