blob: 0e304075be287bd9413ec68aa6661c95567791ad [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional information regarding
* copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the License. You may obtain a
* copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
/*
* Created on Nov 18, 2005
*
*
*/
package org.apache.geode.cache.query.internal;
/**
* Helper class object which gets created during organization of operands in a GroupJunction or a
* CompiledJunction. The filterOperand refers to a filter evaluatable group of conditions. The group
* itself may be a single GroupJunction or an AllGroupJunction or a CompositeGroupJunction. It may
* also be a CompiledJunction, if there exists a filter evaluatable subtree of CompiledJunction
* along with any of the above mentioned three structures . The iterateOperand refers to a single or
* group of conditions which are not filter evaluatable.
*
*
*
*/
class OrganizedOperands {
Filter filterOperand;
CompiledValue iterateOperand;
/**
* Asif : This field indicates if there exists only a Single Filter operand in a GroupJunction (
* implying a CompiledComparison or CompiledUndefined.) or CompiledJunction ( implying a
* GroupJunction or an AllGroupJunction or a CompositeGroupJunction ).Inside a GroupJunction , if
* the boolean is true then iter operands can be passed as a parameter which can be evaluated
* during index result expansion/truncation etc . Also the filterEvaluate method will be invoked
* directly . If there exists multiple filter ops ( multiple CompiledComparisons ) then a Dummy
* GroupJunction will get created & the boolean will be false. In that case , the iter ops passed
* will be null, as evident from the the auxFilterEvauate function of this class.
*/
boolean isSingleFilter;
}