private void ProcessLeaf(Feature node)
        {
            if (node.SubFeaturesCompleted) return;

            IEnumerable<String> randomFeatures = randomGen.GetRandomFeatureList(node.Name);

            foreach (var randomFeature in randomFeatures)
            {
                //Limiting depth of recursive features
                if (docTree.GetNestedDepth(node, randomFeature) >= configuration.GetMaxNestingDepth(randomFeature))
                {
                    continue;
                }

                int childCount = GetChildCount(node.Name, randomFeature);

                for (int i = 0; i < childCount; i++)
                {
                    if (node.GetSubFeatureCount(randomFeature) < childCount)
                    {
                        node.AddSubElement(FeatureFactory.CreateFeature(randomFeature, DataProvider));
                    }
                }
            }

            node.ShuffleChilds();

            node.SubFeaturesCompleted = true;
        }
 private bool IsLeaf(Feature node)
 {
     if (node.GetSubFeatureCount() == 0) {
         return true;
     }
     return false;
 }