Esempio n. 1
0
 /// <summary>
 /// Emit all kinds of selection
 /// </summary>
 /// <param name="sb"></param>
 /// <param name="wr"></param>
 /// <returns></returns>
 private static string Emit(this ISelectionCriteriaBase sb, TextWriter wr)
 {
     if (sb is SelectionCriteria)
     {
         return((sb as SelectionCriteria).Emit(wr));
     }
     else if (sb is ANDOR)
     {
         return((sb as ANDOR).Emit(wr));
     }
     else
     {
         throw new ArgumentException(string.Format("Don't know how to emit type '{0}'", sb.GetType()));
     }
 }
 private IEnumerable <FinalStateObject> ExtractFSOReferences(ISelectionCriteriaBase sc)
 {
     if (sc is SelectionCriteria)
     {
         var fsc = sc as SelectionCriteria;
         return(ExtractFSOReference(fsc.FirstArgument)
                .Concat(ExtractFSOReference(fsc.SecondArgument)));
     }
     else if (sc is ANDOR)
     {
         return((sc as ANDOR)
                .Arguments
                .SelectMany(a => ExtractFSOReferences(a)));
     }
     else
     {
         throw new InvalidOperationException("Unknown selection criteria");
     }
 }
 private IEnumerable<FinalStateObject> ExtractFSOReferences(ISelectionCriteriaBase sc)
 {
     if (sc is SelectionCriteria)
     {
         var fsc = sc as SelectionCriteria;
         return ExtractFSOReference(fsc.FirstArgument)
             .Concat(ExtractFSOReference(fsc.SecondArgument));
     }
     else if (sc is ANDOR)
     {
         return (sc as ANDOR)
             .Arguments
             .SelectMany(a => ExtractFSOReferences(a));
     }
     else
     {
         throw new InvalidOperationException("Unknown selection criteria");
     }
 }