public void Add(EventBean @event, ExprEvaluatorContext exprEvaluatorContext)
        {
            _eventsPerStream[0] = @event;
            var x = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.XEval, _organization.IndexName,
                                                                   AdvancedIndexQuadTreeConstants.COL_X, _eventsPerStream, true,
                                                                   exprEvaluatorContext);
            var y = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.YEval, _organization.IndexName,
                                                                   AdvancedIndexQuadTreeConstants.COL_Y, _eventsPerStream, true,
                                                                   exprEvaluatorContext);
            var width = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.WidthEval, _organization.IndexName,
                                                                       AdvancedIndexQuadTreeConstants.COL_WIDTH, _eventsPerStream, true,
                                                                       exprEvaluatorContext);
            var height = AdvancedIndexEvaluationHelper.EvalDoubleColumn(_config.HeightEval, _organization.IndexName,
                                                                        AdvancedIndexQuadTreeConstants.COL_HEIGHT, _eventsPerStream,
                                                                        true, exprEvaluatorContext);
            bool added = MXCIFQuadTreeRowIndexAdd.Add(x, y, width, height, @event, _quadTree, _organization.IsUnique,
                                                      _organization.IndexName);

            if (!added)
            {
                throw AdvancedIndexEvaluationHelper.InvalidColumnValue(_organization.IndexName, "(x,y,width,height)",
                                                                       "(" + x + "," + y + "," + width + "," + height + ")",
                                                                       "a value intersecting index bounding box (range-end-inclusive) " + _quadTree.Root.Bb);
            }
        }
예제 #2
0
 public void Add(
     EventBean @event,
     ExprEvaluatorContext exprEvaluatorContext)
 {
     eventsPerStream[0] = @event;
     double x = EvalDoubleColumn(
         config.XEval,
         organization.IndexName,
         COL_X,
         eventsPerStream,
         true,
         exprEvaluatorContext);
     double y = EvalDoubleColumn(
         config.YEval,
         organization.IndexName,
         COL_Y,
         eventsPerStream,
         true,
         exprEvaluatorContext);
     double width = EvalDoubleColumn(
         config.WidthEval,
         organization.IndexName,
         COL_WIDTH,
         eventsPerStream,
         true,
         exprEvaluatorContext);
     double height = EvalDoubleColumn(
         config.HeightEval,
         organization.IndexName,
         COL_HEIGHT,
         eventsPerStream,
         true,
         exprEvaluatorContext);
     bool added = MXCIFQuadTreeRowIndexAdd.Add(
         x,
         y,
         width,
         height,
         @event,
         quadTree,
         organization.IsUnique,
         organization.IndexName);
     if (!added) {
         throw InvalidColumnValue(
             organization.IndexName,
             "(X,Y,Width,Height)",
             "(" + x.RenderAny() + "," + y.RenderAny() + "," + width.RenderAny() + "," + height.RenderAny() + ")",
             "a value intersecting index bounding box (range-end-inclusive) " + quadTree.Root.Bb);
     }
 }