public EventTableQuadTreePointRegionImpl(EventTableOrganization organization,
                                          AdvancedIndexConfigStatementPointRegionQuadtree config, PointRegionQuadTree <Object> quadTree)
 {
     _organization = organization;
     _config       = config;
     _quadTree     = quadTree;
 }
        public override EventAdvancedIndexProvisionDesc ValidateEventIndex(
            string indexName, string indexTypeName, ExprNode[] columns, ExprNode[] parameters)
        {
            AdvancedIndexValidationHelper.ValidateColumnCount(2, indexTypeName, columns.Length);
            AdvancedIndexValidationHelper.ValidateColumnReturnTypeNumber(indexTypeName, 0, columns[0], AdvancedIndexQuadTreeConstants.COL_X);
            AdvancedIndexValidationHelper.ValidateColumnReturnTypeNumber(indexTypeName, 1, columns[1], AdvancedIndexQuadTreeConstants.COL_Y);

            ValidateParameters(indexTypeName, parameters);

            var           indexDesc             = new AdvancedIndexDesc(indexTypeName, columns);
            ExprEvaluator xEval                 = indexDesc.IndexedExpressions[0].ExprEvaluator;
            ExprEvaluator yEval                 = indexDesc.IndexedExpressions[1].ExprEvaluator;
            var           indexStatementConfigs = new AdvancedIndexConfigStatementPointRegionQuadtree(xEval, yEval);

            return(new EventAdvancedIndexProvisionDesc(
                       indexDesc, ExprNodeUtility.GetEvaluators(parameters),
                       EventAdvancedIndexFactoryQuadTreePointRegion.INSTANCE,
                       indexStatementConfigs));
        }