Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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");
            }
        }
Esempio n. 3
0
        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");
            }
        }