Exemple #1
0
 public void AddChild(DominatorTreeNode child)
 {
     if (!ChildrenNodes.Contains(child))
     {
         ChildrenNodes.Add(child);
     }
 }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="avTables">перечень таблиц, которые нам нужно для дерева</param>
        /// <param name="parentNode"></param>
        /// <param name="infoRows"></param>
        /// <param name="alterTables"></param>
        public Ais7IssoDefectsTreeNode2(string tableName,
                                        IList <string> avTables, Ais7IssoDefectsTreeNode parentNode, List <InfoRow> infoRows, List <CustomDefectAlterTable> alterTables)
            : base(false)
        {
            TableName  = tableName;
            ParentNode = parentNode;
            ItemType   = Ais7IssoDefectsTreeNodeType.Type1;           // по умолчанию верхний уровень
            NGrConstr  = infoRows.Find(x => x.SysName == tableName).Description;
            CGrConstr  = infoRows.Find(x => x.SysName == tableName).CGrConstr;

            var subAlterTables = alterTables.Where(x => x.c_gr_constr == CGrConstr).ToList();

            if (subAlterTables.Count > 0)
            {
                isForConstr = subAlterTables[0].is_constr;
                Life        = subAlterTables[0].life;
                ItemType    = (Ais7IssoDefectsTreeNodeType)subAlterTables[0].ITEM_TYPE;
                OrderInTree = subAlterTables[0].ord;
            }
            else
            {
                isForConstr = false;
            }

            foreach (var subtable in infoRows.Where(x => x.CGrConstr != 10 && x.ParentId == infoRows.Find(y => y.SysName == tableName).CGrConstr).ToList())
            {
                if (avTables.IndexOf(subtable.SysName) != -1)
                {
                    ChildrenNodes.Add(new Ais7IssoDefectsTreeNode2(subtable.SysName, avTables, this, infoRows, alterTables));
                }
            }
            IsNotLeaf = ChildrenNodes.Count > 0;
            LoadDefectList(CGrConstr, alterTables);
        }
Exemple #3
0
 public bool ApplyAlphaRule()
 {
     foreach (var prop in CurrentNode)
     {
         var set = new HashSet <Proposition>(CurrentNode);
         set.Remove(prop);
         if (prop is Negation n && n.Operand is Negation n1)
         {
             set.Add(n1.Operand);
             var tableau = new SemanticTableau(set, ActiveVariables, PropositionsProcessedByGamma);
             ChildrenNodes.Add(tableau);
             stack.Push(tableau);
             return(true);
         }
Exemple #4
0
 /// <summary>
 /// 设置子节点
 /// </summary>
 /// <param name="childNode"></param>
 public virtual void SetChildNode(INeuralNode childNode)
 {
     //childNode.SetParentNode(this);
     ChildrenNodes.Add(childNode);
 }