public NameBuffer(string namePart, DotNotation notation) { this.buffer = new StringBuilder(namePart); this.bufferStart = this.buffer.Length; this.notation = notation; this.NamePart = namePart; }
public SchemaStore GetStore(DotNotation notation = null, IEnumerable <object> contracts = null) { BindingMetadataBuilder bindingBuilder = new BindingMetadataBuilder(); ReferenceMetadataBuilder referenceBuilder = new ReferenceMetadataBuilder(); TableMetadataBuilder tableBuilder = new TableMetadataBuilder(); SchemaStore store = new SchemaStore(notation ?? new DotNotation(), bindingBuilder, referenceBuilder, tableBuilder); if (contracts != null) { foreach (var contract in contracts) { if (contract is IRelationContractResolver relationResolver) { store.Use(relationResolver); } if (contract is IBindingContractResolver bindingResolver) { store.Use(bindingResolver); } if (contract is ITableContractResolver tableResolver) { store.Use(tableResolver); } } } return(store); }
public BufferWriter Compile(BufferTree tree) { DotNotation notation = tree.Notation; Delegate[] binders = this.GetBindersArgument(tree); IRelationMetadata[] metadata = this.GetMetadataArgument(tree); BufferInternalWriter initializer = this.Compile(tree.Source, tree.Queues, tree.Header.Degree); List <BufferInternalWriter> writers = tree.Queues.Select(this.Compile).ToList(); return(new BufferWriter() { Initializer = this.Recompile(initializer, notation, binders, metadata), Queues = writers.Select(w => this.Recompile(w, notation, binders, metadata)).ToArray(), }); }
public RelationQueueItem(TList list, string namePart, DotNotation notation) : base(namePart, notation) { this.List = list; }
private Action <RelationBuffer> Recompile(BufferInternalWriter writer, DotNotation notation, Delegate[] binders, IRelationMetadata[] metadata) => buf => writer(buf.Fields, buf.Queues, buf.Source, buf.Model, notation, binders, metadata);