public Insert(int bNodeId, TreeDefinition bTree)
        {
            labelB = bTree.getLabelForMatching(bNodeId);

            pdlB = bTree.pdlNodeMapping[labelB];

            int div = labelB.LastIndexOf(":");
            if (div == -1)
                throw new PDLException(string.Format("All nodes should have a : in the middle: {0}", labelB));            

            labelB = labelB.Substring(0, div);
        }
        public Rename(int aNodeId, int bNodeId, TreeDefinition aTree, TreeDefinition bTree)
        {
            labelA = aTree.getLabelForMatching(aNodeId);
            labelB = bTree.getLabelForMatching(bNodeId);

            pdlA = aTree.pdlNodeMapping[labelA];
            pdlB = bTree.pdlNodeMapping[labelB];

            int aDiv = labelA.LastIndexOf(":");
            if (aDiv == -1)
                throw new PDLException(string.Format("All nodes should have a : in the middle: {0}", labelA));
            int bDiv = labelB.LastIndexOf(":");
            if (bDiv == -1)
                throw new PDLException(string.Format("All nodes should have a : in the middle: {0}", labelB));

            labelA = labelA.Substring(0, aDiv);
            labelB = labelB.Substring(0, bDiv);
        }
        public Delete(int aNodeId, TreeDefinition aTree)
        {
            labelA = aTree.getLabelForMatching(aNodeId);

            pdlA = aTree.pdlNodeMapping[labelA];

            int div = labelA.LastIndexOf(":");
            if (div == -1)
                throw new PDLException(string.Format("All nodes should have a : in the middle: {0}", labelA));

            labelA = labelA.Substring(0, div);
        }