Exemplo n.º 1
0
 public void SortWGroupKeysCodegen(
     CodegenMethod method,
     CodegenClassScope classScope,
     CodegenNamedMethods namedMethods)
 {
     OrderByProcessorImpl.SortWGroupKeysCodegen(this, method, classScope, namedMethods);
 }
        protected internal static void SortWGroupKeysCodegen(
            OrderByProcessorOrderedLimitForge forge,
            CodegenMethod method,
            CodegenClassScope classScope,
            CodegenNamedMethods namedMethods)
        {
            var sortWGroupKeys = method.MakeChild(typeof(EventBean[]), typeof(OrderByProcessorOrderedLimit), classScope)
                .AddParam(SORTWGROUPKEYS_PARAMS);
            OrderByProcessorImpl.SortWGroupKeysCodegen(
                forge.OrderByProcessorForge,
                sortWGroupKeys,
                classScope,
                namedMethods);

            method.Block.DeclareVar<EventBean[]>(
                    "sorted",
                    LocalMethod(
                        sortWGroupKeys,
                        REF_OUTGOINGEVENTS,
                        REF_GENERATINGEVENTS,
                        REF_ORDERGROUPBYKEYS,
                        ExprForgeCodegenNames.REF_ISNEWDATA,
                        REF_EXPREVALCONTEXT,
                        MEMBER_AGGREGATIONSVC))
                .MethodReturn(ExprDotMethod(REF_ROWLIMITPROCESSOR, "DetermineLimitAndApply", Ref("sorted")));
        }