示例#1
0
        public HasseDiagram Generate(List <GraphNode> NodesForGraph)
        {
            //LargerThanTest(NodesForGraph);
            HasseDiagram        HDM      = new HasseDiagram(HasseNodeFactory.NodeType.STRING);
            HasseNodeCollection elements = new HasseNodeCollection();

            foreach (GraphNode node in NodesForGraph)
            {
                HasseNode hasseNode = node as HasseNode;
                HDM.AddNode(node);
            }

            return(HDM);
        }
示例#2
0
        public override bool IsLargerThan(HasseNode smallHasseElement)
        {
            GraphNode smallNode = smallHasseElement as GraphNode;

            if (smallNode == null && smallHasseElement.KeyString == "")
            {
                return(true);
            }

            if (this is CoverNode & smallNode is CoverNode)
            {
                if (this.subject.IsDerived)
                {
                    if (this.subject.ChildrenCoverNodeList.Contains((smallNode as CoverNode).CoverName))
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            else if (this is CoverNode & smallNode is TermNode)
            {
                return(this.subject.IsLargerThan(smallNode.Subject as PrimarySubject) ||
                       this.subject.Equals(smallNode.Subject as PrimarySubject));
            }
            else if (this is TermNode & smallNode is CoverNode)
            {
                return(false);
            }
            else if (this is TermNode & smallNode is TermNode)
            {
                //return false;
                //return this.GraphNodeTree.IsLargerThan_map(this as TermNode, smallNode as TermNode);
                return(this.subject.IsLargerThan(smallNode.Subject as PrimarySubject));
            }
            else
            {
                throw new ArgumentOutOfRangeException("Cannot Compare objects of type " + smallHasseElement.GetType().ToString());
            }
        }
示例#3
0
        //public HashSet<AtomicRITE> GetAtomicRites()
        //public void GetAtomicRites()
        //{
        //    HashSet<AtomicRITE> ARITEs = new HashSet<AtomicRITE>();

        //    foreach (RITE rite in subject.Schedule.RITEs)
        //    {
        //        foreach (string subperil in subject.CauseOfLossSet.GetSubperils())
        //        {
        //            foreach (ExposureType expType in subject.ExposureTypes)
        //            {
        //                var RITChars = rite.RiskCharacteristics.Where(RitChar => RitChar.ExpType == expType);
        //                foreach (RITCharacteristic RitChar in RITChars)
        //                {
        //                    ARITEs.Add(new CoverageAtomicRITE(subperil, expType, rite, RitChar.ID));
        //                }
        //            }
        //        }
        //    }

        //    AllAtomicRITEs = ARITEs;

        //    //return ARITEs;

        //}

        // Hasse Node overrrides /////////////////

        public override string[] GetDifferenceString(HasseNode LargerNode)
        {
            return(new string[] { "Does it matter?" });

            //GraphNode LargerGraphNode = LargerNode as GraphNode;

            //if(LargerGraphNode != null)
            //{
            //    Subject largeSubject = LargerGraphNode.subject;
            //    Subject smallSubject = this.subject;

            //    if (smallSubject.IsDerived == true && largeSubject.IsDerived == true)
            //    {


            //    return string.Join(",", ChildrenCoverNodeList.ToArray());
            //}
            //else if (smallSubject.IsDerived == true && largeSubject.IsDerived == false)
            //{
            //}
            //else if (smallSubject.IsDerived == false && largeSubject.IsDerived == true)
            //{
            //}
            //else if (smallSubject.IsDerived == false && largeSubject.IsDerived == false)
            //{
            //}
            //        if (largerSubject.IsDerived == true)
            //        {
            //            var coverDiff = largerSubject.ChildrenCoverNodeList;
            //            coverDiff.Remove(this.
            //        }
            //        else
            //        {            if (!largerSubject.IsDerived)
            //    {
            //        string Schedule = this.Schedule.GetDifferenceString(largerSubject.Schedule);
            //        var COLDiff = largerSubject.CauseOfLossSet.Except(this.CauseOfLossSet);
            //        var ExpTypesDidd = largerSubject.ExposureTypes.Except(this.ExposureTypes);

            //        return Schedule + ";" + string.Join(",", COLDiff.ToArray())
            //                              + string.Join(",", ExpTypesDidd.ToArray());
            //    }
            //    return this.subject.GetDiffercnceString(LargerNode
        }
示例#4
0
 public override bool GetMaxCommonFragments(HasseNode Node1, HasseNode Node2, bool dbg,
                                            HasseFragmentInsertionQueue NewFragmentList, int MinimumOverlap)
 {
     return(true);
 }