/// <summary>
 /// This method does load all codons and conditions in the given assembly.
 /// It will create builders for them which could be used by the factories to
 /// create the codon and condition objects.
 /// </summary>
 private void LoadCodonsAndConditions(Assembly assembly)
 {
     if (assembly != null)
     {
         foreach (Type type in assembly.GetTypes())
         {
             if (!type.IsAbstract)
             {
                 if (type.IsSubclassOf(typeof(AbstractCodon)) && Attribute.GetCustomAttribute(type, typeof(CodonAttribute)) != null)
                 {
                     codonFactory.AddCodonBuilder(new CodonBuilder(type.FullName, assembly));
                 }
                 else if (type.IsSubclassOf(typeof(AbstractCondition)) && Attribute.GetCustomAttribute(type, typeof(ConditionAttribute)) != null)
                 {
                     conditionFactory.AddConditionBuilder(new ConditionBuilder(type.FullName, assembly));
                 }
             }
         }
     }
 }