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); }
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()); } }
//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 }
public override bool GetMaxCommonFragments(HasseNode Node1, HasseNode Node2, bool dbg, HasseFragmentInsertionQueue NewFragmentList, int MinimumOverlap) { return(true); }