Exemplo n.º 1
0
        public void SortRollupCodegen(
            CodegenMethod method,
            CodegenClassScope classScope,
            CodegenNamedMethods namedMethods)
        {
            if (OrderByRollup == null) {
                method.Block.MethodThrowUnsupported();
                return;
            }

            OrderByProcessorImpl.SortRollupCodegen(this, method, classScope, namedMethods);
        }
 public static void SortRollupCodegen(
     OrderByProcessorOrderedLimitForge forge,
     CodegenMethod method,
     CodegenClassScope classScope,
     CodegenNamedMethods namedMethods)
 {
     var sortRollup = method.MakeChild(typeof(EventBean[]), typeof(OrderByProcessorOrderedLimit), classScope)
         .AddParam(SORTROLLUP_PARAMS);
     OrderByProcessorImpl.SortRollupCodegen(forge.OrderByProcessorForge, sortRollup, classScope, namedMethods);
     method.Block.DeclareVar<EventBean[]>(
             "sorted",
             LocalMethod(
                 sortRollup,
                 REF_OUTGOINGEVENTS,
                 REF_ORDERCURRENTGENERATORS,
                 ExprForgeCodegenNames.REF_ISNEWDATA,
                 MEMBER_AGENTINSTANCECONTEXT,
                 MEMBER_AGGREGATIONSVC))
         .MethodReturn(ExprDotMethod(REF_ROWLIMITPROCESSOR, "DetermineLimitAndApply", Ref("sorted")));
 }