コード例 #1
0
        public static IDictionary <ExprTableAccessNode, ExprTableAccessEvalStrategy> AttachTableAccess(
            EPServicesContext services,
            AgentInstanceContext agentInstanceContext,
            ExprTableAccessNode[] tableNodes)
        {
            if (tableNodes == null || tableNodes.Length == 0)
            {
                return(Collections.GetEmptyMap <ExprTableAccessNode, ExprTableAccessEvalStrategy>());
            }

            IDictionary <ExprTableAccessNode, ExprTableAccessEvalStrategy> strategies =
                new Dictionary <ExprTableAccessNode, ExprTableAccessEvalStrategy>();

            foreach (var tableNode in tableNodes)
            {
                var writesToTables = agentInstanceContext.StatementContext.IsWritesToTables;
                TableAndLockProvider        provider      = services.TableService.GetStateProvider(tableNode.TableName, agentInstanceContext.AgentInstanceId, writesToTables);
                TableMetadata               tableMetadata = services.TableService.GetTableMetadata(tableNode.TableName);
                ExprTableAccessEvalStrategy strategy      = ExprTableEvalStrategyFactory.GetTableAccessEvalStrategy(tableNode, provider, tableMetadata);
                strategies.Put(tableNode, strategy);
            }

            return(strategies);
        }
コード例 #2
0
 public void AssignService(int num, ExprTableAccessEvalStrategy value)
 {
     AIRegistryUtil.CheckExpand(num, _strategies);
     _strategies.Array[num] = value;
     _count++;
 }
コード例 #3
0
 public void AssignService(int num, ExprTableAccessEvalStrategy value)
 {
     strategies.Put(num, value);
 }
コード例 #4
0
 public void DeassignService(int num)
 {
     this.strategy = null;
 }
コード例 #5
0
 public void AssignService(int num, ExprTableAccessEvalStrategy value)
 {
     this.strategy = value;
 }