コード例 #1
0
        public override EventAdvancedIndexProvisionDesc ValidateEventIndex(
            string indexName,
            string indexTypeName,
            ExprNode[] columns,
            ExprNode[] parameters)
        {
            AdvancedIndexValidationHelper.ValidateColumnCount(4, indexTypeName, columns.Length);
            AdvancedIndexValidationHelper.ValidateColumnReturnTypeNumber(indexTypeName, 0, columns[0], AdvancedIndexQuadTreeConstants.COL_X);
            AdvancedIndexValidationHelper.ValidateColumnReturnTypeNumber(indexTypeName, 1, columns[1], AdvancedIndexQuadTreeConstants.COL_Y);
            AdvancedIndexValidationHelper.ValidateColumnReturnTypeNumber(indexTypeName, 2, columns[2], AdvancedIndexQuadTreeConstants.COL_WIDTH);
            AdvancedIndexValidationHelper.ValidateColumnReturnTypeNumber(indexTypeName, 3, columns[3], AdvancedIndexQuadTreeConstants.COL_HEIGHT);

            ValidateParameters(indexTypeName, parameters);

            var indexDesc             = new AdvancedIndexDesc(indexTypeName, columns);
            var xEval                 = indexDesc.IndexedExpressions[0].ExprEvaluator;
            var yEval                 = indexDesc.IndexedExpressions[1].ExprEvaluator;
            var widthEval             = indexDesc.IndexedExpressions[2].ExprEvaluator;
            var heightEval            = indexDesc.IndexedExpressions[3].ExprEvaluator;
            var indexStatementConfigs = new AdvancedIndexConfigStatementMXCIFQuadtree(xEval, yEval, widthEval, heightEval);

            return(new EventAdvancedIndexProvisionDesc(
                       indexDesc, ExprNodeUtility.GetEvaluators(parameters),
                       EventAdvancedIndexFactoryQuadTreeMXCIF.INSTANCE,
                       indexStatementConfigs));
        }
        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));
        }
コード例 #3
0
        protected static void ValidateParameters(string indexTypeName, ExprNode[] parameters)
        {
            AdvancedIndexValidationHelper.ValidateParameterCount(4, 6, indexTypeName, parameters?.Length ?? 0);
            AdvancedIndexValidationHelper.ValidateParameterReturnTypeNumber(indexTypeName, 0, parameters[0],
                                                                            AdvancedIndexQuadTreeConstants.PARAM_XMIN);
            AdvancedIndexValidationHelper.ValidateParameterReturnTypeNumber(indexTypeName, 1, parameters[1],
                                                                            AdvancedIndexQuadTreeConstants.PARAM_YMIN);
            AdvancedIndexValidationHelper.ValidateParameterReturnTypeNumber(indexTypeName, 2, parameters[2],
                                                                            AdvancedIndexQuadTreeConstants.PARAM_WIDTH);
            AdvancedIndexValidationHelper.ValidateParameterReturnTypeNumber(indexTypeName, 3, parameters[3],
                                                                            AdvancedIndexQuadTreeConstants.PARAM_HEIGHT);
            if (parameters.Length > 4)
            {
                AdvancedIndexValidationHelper.ValidateParameterReturnType(typeof(int?), indexTypeName, 4, parameters[4],
                                                                          AdvancedIndexQuadTreeConstants.PARAM_LEAFCAPACITY);
            }

            if (parameters.Length > 5)
            {
                AdvancedIndexValidationHelper.ValidateParameterReturnType(typeof(int?), indexTypeName, 5, parameters[5],
                                                                          AdvancedIndexQuadTreeConstants.PARAM_MAXTREEHEIGHT);
            }
        }