public bool Add(HasseNode[] LowerNodes, HasseNode[] HigherNodes, string NewNodeContent, string Origin, HasseNode.HasseNodeTypes NodeType, HasseEdge RelatedEdge) { if (nodesInDiagram.ContainsKey(NewNodeContent)) { return(false); } if (RelatedEdge != null) { if (RelatedEdge.LowerNode == null || RelatedEdge.UpperNode == null) { System.Diagnostics.Debugger.Break(); } } FragmentToBeInserted F = new FragmentToBeInserted(); F.LowerNodes = LowerNodes; F.HigherNodes = HigherNodes; F.NewNodeContent = NewNodeContent; F.Origin = Origin; F.NodeType = NodeType; F.RelatedEdge = RelatedEdge; this.Enqueue(F); return(true); }
public HasseNode NewNode(object o, HasseNode.HasseNodeTypes e, string debugInfo) { // make node based on object of a class that the node implementing class knows about switch (nType) { case NodeType.STRING: StringHasseNode SN = new StringHasseNode((string)o, e, debugInfo); return(SN); case NodeType.CHEM: ChemHasseNode CN = new ChemHasseNode((IndigoChemistry )o, e, debugInfo); return(CN); case NodeType.FINGERPRINTCHEM: FingerprintChemHasseNode FPC = new FingerprintChemHasseNode((IndigoChemistry)o, e, debugInfo); return(FPC); default: throw new Exception("HasseNodeFactory: unhandled NodeType"); } }
public HasseNode NewNode(string s, HasseNode.HasseNodeTypes e, string debugInfo) // make node based on string { switch (nType) { case NodeType.STRING: StringHasseNode SN = new StringHasseNode(s, e, debugInfo); return(SN); case NodeType.CHEM: ChemHasseNode CN = new ChemHasseNode(s, e, debugInfo); return(CN); case NodeType.FINGERPRINTCHEM: FingerprintChemHasseNode FPC = new FingerprintChemHasseNode(s, e, debugInfo); return(FPC); default: throw new Exception("HasseNodeFactory: unhandled NodeType"); } }