public CodegenExpression MakeCodegen(
            CodegenMethodScope parent,
            SAIFFInitializeSymbol symbols,
            CodegenClassScope classScope)
        {
            if (scheduleCallbackId == -1) {
                throw new IllegalStateException("Unassigned schedule callback id");
            }

            var method = parent.MakeChild(
                typeof(TimerScheduleObserverFactory),
                typeof(TimerIntervalObserverForge),
                classScope);

            method.Block
                .DeclareVar<TimerScheduleObserverFactory>(
                    "factory",
                    ExprDotMethodChain(symbols.GetAddInitSvc(method))
                        .Get(EPStatementInitServicesConstants.PATTERNFACTORYSERVICE)
                        .Add("ObserverTimerSchedule"))
                .SetProperty(Ref("factory"), "ScheduleCallbackId", Constant(scheduleCallbackId))
                .SetProperty(Ref("factory"), "IsAllConstant", Constant(allConstantResult))
                .SetProperty(Ref("factory"), "ScheduleComputer", scheduleComputer.Make(method, classScope))
                .SetProperty(
                    Ref("factory"),
                    "OptionalConvertor",
                    convertor == null ? null : convertor.MakeAnonymous(method, classScope))
                .MethodReturn(Ref("factory"));
            return LocalMethod(method);
        }
Example #2
0
 public CodegenExpression MakeCodegen(
     CodegenMethodScope parent,
     SAIFFInitializeSymbol symbols,
     CodegenClassScope classScope)
 {
     var builder = new SAIFFInitializeBuilder(
         typeof(MyCountToPatternGuardFactory),
         GetType(),
         "GuardFactory",
         parent,
         symbols,
         classScope);
     return builder.Exprnode("numCountToExpr", numCountToExpr)
         .Expression("convertor", convertor.MakeAnonymous(builder.Method(), classScope))
         .Build();
 }
 public CodegenExpression MakeCodegen(
     CodegenMethodScope parent,
     SAIFFInitializeSymbol symbols,
     CodegenClassScope classScope)
 {
     var builder = new SAIFFInitializeBuilder(
         typeof(MyFileExistsObserverFactory),
         GetType(),
         "observerFactory",
         parent,
         symbols,
         classScope);
     return builder.Exprnode("filenameExpression", filenameExpression)
         .Expression("convertor", convertor.MakeAnonymous(builder.Method(), classScope))
         .Build();
 }
Example #4
0
        public CodegenExpression MakeCodegen(
            CodegenMethodScope parent,
            SAIFFInitializeSymbol symbols,
            CodegenClassScope classScope)
        {
            if (scheduleCallbackId == -1) {
                throw new IllegalStateException("Unassigned schedule callback id");
            }

            var method = parent.MakeChild(
                typeof(TimerAtObserverFactory),
                typeof(TimerIntervalObserverForge),
                classScope);

            CodegenExpression parametersExpr;
            CodegenExpression optionalConvertorExpr;
            CodegenExpression specExpr;
            if (spec != null) { // handle all-constant specification
                parametersExpr = ConstantNull();
                optionalConvertorExpr = ConstantNull();
                specExpr = spec.Make(method, classScope);
            }
            else {
                specExpr = ConstantNull();
                optionalConvertorExpr = convertor.MakeAnonymous(method, classScope);
                parametersExpr = ExprNodeUtilityCodegen.CodegenEvaluators(
                    ExprNodeUtilityQuery.ToArray(parameters),
                    method,
                    GetType(),
                    classScope);
            }

            method.Block
                .DeclareVar<TimerAtObserverFactory>(
                    "factory",
                    ExprDotMethodChain(symbols.GetAddInitSvc(method))
                        .Get(EPStatementInitServicesConstants.PATTERNFACTORYSERVICE)
                        .Add("ObserverTimerAt"))
                .SetProperty(Ref("factory"), "ScheduleCallbackId", Constant(scheduleCallbackId))
                .SetProperty(Ref("factory"), "Parameters", parametersExpr)
                .SetProperty(Ref("factory"), "OptionalConvertor", optionalConvertorExpr)
                .SetProperty(Ref("factory"), "Spec", specExpr)
                .MethodReturn(Ref("factory"));
            return LocalMethod(method);
        }
Example #5
0
 public CodegenExpression MakeCodegen(
     CodegenMethodScope parent,
     SAIFFInitializeSymbol symbols,
     CodegenClassScope classScope)
 {
     var method = parent.MakeChild(typeof(ExpressionGuardFactory), GetType(), classScope);
     method.Block
         .DeclareVar<ExpressionGuardFactory>(
             "factory",
             ExprDotMethodChain(symbols.GetAddInitSvc(method))
                 .Get(EPStatementInitServicesConstants.PATTERNFACTORYSERVICE)
                 .Add("GuardWhile"))
         .SetProperty(Ref("factory"), "Convertor", convertor.MakeAnonymous(method, classScope))
         .SetProperty(
             Ref("factory"),
             "Expression",
             ExprNodeUtilityCodegen.CodegenEvaluator(expression.Forge, method, GetType(), classScope))
         .MethodReturn(Ref("factory"));
     return LocalMethod(method);
 }