Ejemplo n.º 1
0
 public NameBuffer(string namePart, DotNotation notation)
 {
     this.buffer      = new StringBuilder(namePart);
     this.bufferStart = this.buffer.Length;
     this.notation    = notation;
     this.NamePart    = namePart;
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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(),
            });
        }
Ejemplo n.º 4
0
 public RelationQueueItem(TList list, string namePart, DotNotation notation)
     : base(namePart, notation)
 {
     this.List = list;
 }
Ejemplo n.º 5
0
 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);