public object Clone() { IsomorphyInformation ii = new IsomorphyInformation(); ii.CheckIsMatchedBit = CheckIsMatchedBit; ii.SetIsMatchedBit = SetIsMatchedBit; if (PatternElementsToCheckAgainst != null) { ii.PatternElementsToCheckAgainst = new List <SearchPlanNode>(PatternElementsToCheckAgainst.Count); for (int i = 0; i < PatternElementsToCheckAgainst.Count; ++i) { ii.PatternElementsToCheckAgainst.Add(PatternElementsToCheckAgainst[i]); } } if (GloballyHomomorphPatternElements != null) { ii.GloballyHomomorphPatternElements = new List <SearchPlanNode>(GloballyHomomorphPatternElements.Count); for (int i = 0; i < GloballyHomomorphPatternElements.Count; ++i) { ii.GloballyHomomorphPatternElements.Add(GloballyHomomorphPatternElements[i]); } } ii.TotallyHomomorph = TotallyHomomorph; ii.LockForAllThreads = LockForAllThreads; ii.Parallel = Parallel; return(ii); }