public CodegenMethod InitializeCodegen( CodegenMethodScope parent, SAIFFInitializeSymbol symbols, CodegenClassScope classScope) { var method = parent.MakeChild(TypeOfSubclass(), GetType(), classScope); method.Block .DeclareVar(TypeOfSubclass(), "saiff", NewInstance(TypeOfSubclass())) .SetProperty(Ref("saiff"), "Activator", activator.MakeCodegen(method, symbols, classScope)) .SetProperty( Ref("saiff"), "ResultEventType", EventTypeUtility.ResolveTypeCodegen(resultEventType, symbols.GetAddInitSvc(method))) .SetProperty( Ref("saiff"), "Subselects", SubSelectFactoryForge.CodegenInitMap(subselects, GetType(), method, symbols, classScope)) .SetProperty( Ref("saiff"), "TableAccesses", ExprTableEvalStrategyUtil.CodegenInitMap(tableAccesses, GetType(), method, symbols, classScope)); InlineInitializeOnTriggerBase(Ref("saiff"), method, symbols, classScope); method.Block.MethodReturn(Ref("saiff")); return method; }
public CodegenExpression Make( CodegenMethodScope parent, SAIFFInitializeSymbol symbols, CodegenClassScope classScope) { var method = parent.MakeChild(typeof(SubSelectFactory), GetType(), classScope); method.Block .DeclareVar<SubSelectFactory>("factory", NewInstance(typeof(SubSelectFactory))) .SetProperty(Ref("factory"), "SubqueryNumber", Constant(subqueryNumber)) .SetProperty(Ref("factory"), "Activator", activator.MakeCodegen(method, symbols, classScope)) .SetProperty( Ref("factory"), "StrategyFactory", strategyFactoryForge.MakeCodegen(method, symbols, classScope)) .SetProperty(Ref("factory"), "HasAggregation", Constant(strategyFactoryForge.HasAggregation)) .SetProperty(Ref("factory"), "HasPrior", Constant(strategyFactoryForge.HasPrior)) .SetProperty(Ref("factory"), "HasPrevious", Constant(strategyFactoryForge.HasPrevious)) .ExprDotMethod(symbols.GetAddInitSvc(method), "AddReadyCallback", Ref("factory")) .MethodReturn(Ref("factory")); return LocalMethod(method); }