public IBuilder Append(HrbcField field, FieldCollectionBuilderHandler fieldCollectionHandler)
            {
                var builder = new CollectionBuilder();

                if (content.ContainsKey(field) && content[field] != null)
                {
                    builder.Append(content[field]);
                }
                fieldCollectionHandler(builder);
                content[field] = builder.Count > 0 ? builder.Build() : null;
                return(this);
            }
            public FieldCollection this[HrbcField key]
            {
                get
                {
                    return(content[key]);
                }

                set
                {
                    content[key] = value;
                }
            }
 internal PathNode(IReadOnlyList <HrbcField> path, HrbcField field, object value)
 {
     Path  = path;
     Field = field;
     Value = value;
 }
 public static bool IsField(this OptionField optionField, HrbcField field)
 {
     return(field.ResourceType == ResourceType.Option && field.Resource == ResourceId.None && optionNames.ContainsKey(optionField) && optionNames[optionField] == field.Name);
 }
 public static string ToAlias(this HrbcField field)
 {
     return(field.ResourceType.ToAlias(field.Resource) + "." + field.Name);
 }
 public bool TryGetValue(HrbcField key, out FieldCollection value)
 {
     return(content.TryGetValue(key, out value));
 }
 public bool Remove(HrbcField key)
 {
     return(content.Remove(key));
 }
 public bool ContainsKey(HrbcField key)
 {
     return(content.ContainsKey(key));
 }
 public IBuilder Append(HrbcField field, FieldCollection fieldCollection)
 {
     return(Append(field, builder => builder.Append(fieldCollection)));
 }
 public void Add(HrbcField key, FieldCollection value)
 {
     content.Add(key, value);
 }