private static String GenerateOperatorName <TE, TW>( WindowAssigner <TE, TW> assigner, WindowTrigger <TE, TW> trigger, IWindowEvictor <TE, TW> evictor, IFunction function1, IFunction function2) where TW : Window { return("Window(" + assigner + ", " + trigger.GetType().Name + ", " + (evictor == null ? "" : (evictor.GetType().Name + ", ")) + GenerateFunctionName(function1) + (function2 == null ? "" : (", " + GenerateFunctionName(function2))) + ")"); }