public PatternNodePPA CreatePatternNodePpa(IPatternNodePPABuilderFactory nodePpaBuilderFactory)
        {
            IPatternNodePPABuilder builder;

            if (nodePpaBuilderFactory.TryGetBuilder(out builder))
            {
                return(new PatternNodePPA(builder));
            }
            else
            {
                return(null);
            }
        }
        protected List <PatternNodePPA> ComputeChildren(List <PermutationContainerPPA> containerPpas)
        {
            List <PatternNodePPA>         nodePpas = new List <PatternNodePPA>();
            IPatternNodePPABuilder        builder;
            IPatternNodePPABuilderFactory builderFactory = builderFactoryCreator.GetBuilderFactory();

            foreach (var container in containerPpas)
            {
                builderFactory.Reset();
                builderFactory.SetContainerPPA(container);
                builderFactory.TryGetBuilder(out builder);
                nodePpas.Add(new PatternNodePPA(builder));
            }
            return(nodePpas);
        }