void add(string col, ITableColumnChange pActivity, IBlockPoint pBlock, IRowValidator pValidator, ColumnChangeEventType pEvent)
        {
            {
                DataRow row = getRow(pEvent, col);
                if (row == null)
                {
                    row = tableRel.Rows.Add(
                        new object[] {
                        pEvent,
                        col,
                        new List <ITableColumnChange>(),
                        new List <IRowValidator>(),
                        new List <IBlockPoint>(),
                    });
                }

                ((List <ITableColumnChange>)row[colACTIVITY]).Add(pActivity);
                ((List <IRowValidator>)row[colVALIDATOR]).Add((pValidator == null) ? new RowValidatorTrue() : pValidator);
                ((List <IBlockPoint>)row[colBLOCK]).Add(pBlock);
            }
            {
                tableRelDistinct.Rows.Add(
                    new object[] {
                    pActivity,
                    pValidator
                });
            }
        }
        public void addRelation(string[] pCols, ITableColumnChange pActivity, IBlockPoint pBlock, IRowValidator pValidator, ColumnChangeEventType pEvent)
        {
            pValidator = (pValidator == null) ? new RowValidatorTrue() : pValidator;

            try
            {
                blockPointMain.block();
                for (int i = 0; i < tableTarget.Rows.Count; ++i)
                {
                    DataRow row = tableTarget.Rows[i];
                    if (pValidator.check(row))
                    {
                        pActivity.initForColumnChanged(row);
                    }
                }
            }
            finally
            {
                blockPointMain.unblock();
            }

            foreach (string col in pCols)
            {
                add(col, pActivity, pBlock, pValidator, pEvent);
            }
        }
示例#3
0
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);


            _curMatRecord = null;
            _tableSchema  = null;
            _blockPoint   = null;
        }
示例#4
0
 public void setBlockPoint(IBlockPoint bp)
 {
     blockPoint = bp;
 }
 public void addRelation(string[] pCols, ITableColumnChange pActivity, IBlockPoint pBlock, IRowValidator pValidator)
 {
     addRelation(pCols, pActivity, pBlock, pValidator, defaultEvent);
 }