Java 类org.apache.hadoop.hbase.index.GroupingCondition 实例源码

项目:HIndex    文件:ScanFilterEvaluator.java   
FilterNode evalFilterForIndexSelection(Filter filter, List<IndexSpecification> indices) {
  if (filter instanceof FilterList) {
    FilterList fList = (FilterList) filter;
    GroupingCondition condition =
        (fList.getOperator() == Operator.MUST_PASS_ALL) ? GroupingCondition.AND
            : GroupingCondition.OR;
    NonLeafFilterNode nonLeafFilterNode = new NonLeafFilterNode(condition);
    List<Filter> filters = fList.getFilters();
    for (Filter fltr : filters) {
      FilterNode node = evalFilterForIndexSelection(fltr, indices);
      nonLeafFilterNode.addFilterNode(node);
    }
    return handleNonLeafFilterNode(nonLeafFilterNode);
  } else if (filter instanceof SingleColumnValueFilter) {
    // Check for the availability of index
    return selectBestFitAndPossibleIndicesForSCVF(indices, (SingleColumnValueFilter) filter);
  } else if (filter instanceof SingleColumnRangeFilter) {
    return selectBestFitAndPossibleIndicesForSCRF(indices, (SingleColumnRangeFilter) filter);
  }
  return new NoIndexFilterNode();
}
项目:hindex    文件:ScanFilterEvaluator.java   
FilterNode evalFilterForIndexSelection(Filter filter, List<IndexSpecification> indices) {
  if (filter instanceof FilterList) {
    FilterList fList = (FilterList) filter;
    GroupingCondition condition =
        (fList.getOperator() == Operator.MUST_PASS_ALL) ? GroupingCondition.AND
            : GroupingCondition.OR;
    NonLeafFilterNode nonLeafFilterNode = new NonLeafFilterNode(condition);
    List<Filter> filters = fList.getFilters();
    for (Filter fltr : filters) {
      FilterNode node = evalFilterForIndexSelection(fltr, indices);
      nonLeafFilterNode.addFilterNode(node);
    }
    return handleNonLeafFilterNode(nonLeafFilterNode);
  } else if (filter instanceof SingleColumnValueFilter) {
    // Check for the availability of index
    return selectBestFitAndPossibleIndicesForSCVF(indices, (SingleColumnValueFilter) filter);
  } else if (filter instanceof SingleColumnRangeFilter) {
    return selectBestFitAndPossibleIndicesForSCRF(indices, (SingleColumnRangeFilter) filter);
  }
  return new NoIndexFilterNode();
}
项目:HIndex    文件:ScanFilterEvaluator.java   
private IndexRegionScanner createScannerForNonLeafNode(List<IndexRegionScanner> scanners,
    GroupingCondition condition) {
  IndexRegionScanner idxScanner;
  if (condition == GroupingCondition.OR) {
    idxScanner = new IndexRegionScannerForOR(scanners);
  } else {
    idxScanner = new IndexRegionScannerForAND(scanners);
  }
  return idxScanner;
}
项目:HIndex    文件:ScanFilterEvaluator.java   
private FilterNode handleNonLeafFilterNode(NonLeafFilterNode nonLeafFilterNode) {
  // check whether this node can be changed to a NoIndexFilterNode
  // This we can do when the condition in nonLeafFilterNode is OR and any of the
  // child node is NoIndexFilterNode
  if (nonLeafFilterNode.getGroupingCondition() == GroupingCondition.OR) {
    return handleORCondition(nonLeafFilterNode);
  } else {
    // AND condition
    return handleANDCondition(nonLeafFilterNode);
  }
}
项目:hindex    文件:ScanFilterEvaluator.java   
private IndexRegionScanner createScannerForNonLeafNode(List<IndexRegionScanner> scanners,
    GroupingCondition condition) {
  IndexRegionScanner idxScanner;
  if (condition == GroupingCondition.OR) {
    idxScanner = new IndexRegionScannerForOR(scanners);
  } else {
    idxScanner = new IndexRegionScannerForAND(scanners);
  }
  return idxScanner;
}
项目:hindex    文件:ScanFilterEvaluator.java   
private FilterNode handleNonLeafFilterNode(NonLeafFilterNode nonLeafFilterNode) {
  // check whether this node can be changed to a NoIndexFilterNode
  // This we can do when the condition in nonLeafFilterNode is OR and any of the
  // child node is NoIndexFilterNode
  if (nonLeafFilterNode.getGroupingCondition() == GroupingCondition.OR) {
    return handleORCondition(nonLeafFilterNode);
  } else {
    // AND condition
    return handleANDCondition(nonLeafFilterNode);
  }
}
项目:HIndex    文件:MultiIndexExpression.java   
public MultiIndexExpression(GroupingCondition condition) {
  this.groupingCondition = condition;
}
项目:HIndex    文件:MultiIndexExpression.java   
public GroupingCondition getGroupingCondition() {
  return this.groupingCondition;
}
项目:HIndex    文件:NonLeafFilterNode.java   
public NonLeafFilterNode(GroupingCondition condition) {
  this.groupingCondition = condition;
}
项目:HIndex    文件:NonLeafFilterNode.java   
public GroupingCondition getGroupingCondition() {
  return groupingCondition;
}
项目:hindex    文件:MultiIndexExpression.java   
public MultiIndexExpression(GroupingCondition condition) {
  this.groupingCondition = condition;
}
项目:hindex    文件:MultiIndexExpression.java   
public GroupingCondition getGroupingCondition() {
  return this.groupingCondition;
}
项目:hindex    文件:NonLeafFilterNode.java   
public NonLeafFilterNode(GroupingCondition condition) {
  this.groupingCondition = condition;
}
项目:hindex    文件:NonLeafFilterNode.java   
public GroupingCondition getGroupingCondition() {
  return groupingCondition;
}