public StatementCompileTimeServices( int statementNumber, ModuleCompileTimeServices services) { _services = services; _eventTypeNameGeneratorStatement = new EventTypeNameGeneratorStatement(statementNumber); _classProvidedExtension = new ClassProvidedExtensionImpl(services.ClassProvidedCompileTimeResolver); }
public static ExprNode TryResolveAsAggregation( ImportServiceCompileTime importService, bool distinct, string functionName, LazyAllocatedMap<HashableMultiKey, AggregationMultiFunctionForge> plugInAggregations, ClassProvidedExtension classProvidedExtension) { try { AggregationFunctionForge aggregationFactory = importService.ResolveAggregationFunction(functionName, classProvidedExtension); return new ExprPlugInAggNode(distinct, aggregationFactory, functionName); } catch (ImportUndefinedException) { // Not an aggregation function } catch (ImportException e) { throw new ValidationException("Error resolving aggregation: " + e.Message, e); } // try plug-in aggregation multi-function Pair<ConfigurationCompilerPlugInAggregationMultiFunction, Type> configPair = importService .ResolveAggregationMultiFunction(functionName, classProvidedExtension); if (configPair != null) { HashableMultiKey multiKey = new HashableMultiKey(configPair.First.FunctionNames); AggregationMultiFunctionForge factory = plugInAggregations.Map.Get(multiKey); if (factory == null) { if (configPair.Second != null) { factory = (AggregationMultiFunctionForge) TypeHelper.Instantiate<AggregationMultiFunctionForge>( configPair.Second); } else { factory = (AggregationMultiFunctionForge) TypeHelper.Instantiate<AggregationMultiFunctionForge>( configPair.First.MultiFunctionForgeClassName, importService.ClassForNameProvider); } plugInAggregations.Map[multiKey] = factory; } factory.AddAggregationFunction(new AggregationMultiFunctionDeclarationContext( functionName.ToLowerInvariant(), distinct, configPair.First)); return new ExprPlugInMultiFunctionAggNode(distinct, configPair.First, factory, functionName); } // try built-in expanded set of aggregation functions return importService.ResolveAggExtendedBuiltin(functionName, distinct); }
public StatementSpecMapEnv( ImportServiceCompileTime importService, VariableCompileTimeResolver variableCompileTimeResolver, Configuration configuration, ExprDeclaredCompileTimeResolver exprDeclaredCompileTimeResolver, ContextCompileTimeResolver contextCompileTimeResolver, TableCompileTimeResolver tableCompileTimeResolver, ScriptCompileTimeResolver scriptCompileTimeResolver, CompilerServices compilerServices, ClassProvidedExtension classProvidedExtension) { ImportService = importService; VariableCompileTimeResolver = variableCompileTimeResolver; Configuration = configuration; ExprDeclaredCompileTimeResolver = exprDeclaredCompileTimeResolver; ContextCompileTimeResolver = contextCompileTimeResolver; TableCompileTimeResolver = tableCompileTimeResolver; ScriptCompileTimeResolver = scriptCompileTimeResolver; CompilerServices = compilerServices; ClassProvidedExtension = classProvidedExtension; }