// Creates Splitter wrapper
        private Splitter CreateItem(
            // Fields of Splitter table
            Guid SplitterId,
            int BitWidth,
            int PinCount,
            bool Clockwise
            // Fields of Circuit table

            )
        {
            TableSnapshot <CircuitData> tableCircuit = (TableSnapshot <CircuitData>) this.CircuitProject.Table("Circuit");
            CircuitData dataCircuit = new CircuitData()
            {
                CircuitId = SplitterId
            };
            RowId rowIdCircuit = tableCircuit.Insert(ref dataCircuit);

            SplitterData dataSplitter = new SplitterData()
            {
                SplitterId = SplitterId,
                BitWidth   = BitWidth,
                PinCount   = PinCount,
                Clockwise  = Clockwise,
            };

            return(this.Create(this.Table.Insert(ref dataSplitter), rowIdCircuit));
        }
        public CircuitProject() : base()
        {
            // Create all sets
            this.CreateSets();

            // Create foreign keys
            ProjectData.CreateForeignKeys(this);
            CollapsedCategoryData.CreateForeignKeys(this);
            CircuitData.CreateForeignKeys(this);
            DevicePinData.CreateForeignKeys(this);
            GateData.CreateForeignKeys(this);
            LogicalCircuitData.CreateForeignKeys(this);
            PinData.CreateForeignKeys(this);
            CircuitProbeData.CreateForeignKeys(this);
            ConstantData.CreateForeignKeys(this);
            CircuitButtonData.CreateForeignKeys(this);
            MemoryData.CreateForeignKeys(this);
            LedMatrixData.CreateForeignKeys(this);
            SplitterData.CreateForeignKeys(this);
            SensorData.CreateForeignKeys(this);
            SoundData.CreateForeignKeys(this);
            GraphicsArrayData.CreateForeignKeys(this);
            CircuitSymbolData.CreateForeignKeys(this);
            WireData.CreateForeignKeys(this);
            TextNoteData.CreateForeignKeys(this);

            this.FreezeShape();
            this.Init();
        }
        // Constructor
        public SplitterSet(CircuitProject store)
        {
            ITableSnapshot table = store.Table("Splitter");

            if (table != null)
            {
                Debug.Assert(store.IsFrozen, "The store should be frozen");
                this.Table = (TableSnapshot <SplitterData>)table;
            }
            else
            {
                Debug.Assert(!store.IsFrozen, "In order to create table, the store should not be frozen");
                this.Table = SplitterData.CreateTable(store);
            }
            this.InitializeSplitterSet();
        }