Projects >> bobo >>4fa60dd8c3f9d765a90c2f19cd12dc8a9bd4b462

Chunk
Conflicting content
{
  private static final Logger log = Logger.getLogger(DefaultFacetCountCollector.class.getName());
  protected final FacetSpec _ospec;
<<<<<<< HEAD
  protected int[] _count;
  protected final FacetDataCache _dataCache;
=======
  public int[] _count;
  protected FacetDataCache _dataCache;
>>>>>>> a2029c1eb18ed75df8d2902f32a877564052b191
  private final String _name;
  protected final BrowseSelection _sel;
  protected final BigSegmentedArray _array;
Solution content
{
  private static final Logger log = Logger.getLogger(DefaultFacetCountCollector.class.getName());
  protected final FacetSpec _ospec;
  public int[] _count;
  protected FacetDataCache _dataCache;
  private final String _name;
  protected final BrowseSelection _sel;
  protected final BigSegmentedArray _array;
File
DefaultFacetCountCollector.java
Developer's decision
Version 2
Kind of conflict
Attribute
Chunk
Conflicting content
    public final boolean validate(final int docid)
    throws IOException
    {
<<<<<<< HEAD
      protected final FacetHitCollector[] _collectors;
      protected final FacetCountCollectorSource[] _countCollectorSources;
      protected final int _numPostFilters;
      protected FacetCountCollector[] _countCollectors;
      public int _nextTarget;
      
      public FacetValidator(FacetHitCollector[] collectors,FacetCountCollectorSource[] countCollectorSources,int numPostFilters) throws IOException
      {
        _collectors = collectors;
        _countCollectorSources = countCollectorSources;
        _numPostFilters = numPostFilters;
        _countCollectors = new FacetCountCollector[_countCollectorSources.length];
      }
      /**
       * This method validates the doc against any multi-select enabled fields.
       * @param docid
       * @return true if all fields matched
       */
      public abstract boolean validate(final int docid)
        throws IOException;
      
      public void setNextReader(BoboIndexReader reader,int docBase) throws IOException{
        ArrayList collectorList = new ArrayList();
        for (int i=0;i<_collectors.length;++i){
          _collectors[i].setNextReader(reader, docBase);
          FacetCountCollector collector = _collectors[i]._currentPointers.facetCountCollector;
          if(collector != null)
          {
            collectorList.add(collector);
          }
        }
        _countCollectors = collectorList.toArray(new FacetCountCollector[collectorList.size()]);
      }
      
    }
    
    private final static class DefaultFacetValidator extends FacetValidator{
    	
    	public DefaultFacetValidator(FacetHitCollector[] collectors,FacetCountCollectorSource[] countCollectors,int numPostFilters) throws IOException{
    		super(collectors,countCollectors,numPostFilters);
    	}
    	 /**
         * This method validates the doc against any multi-select enabled fields.
         * @param docid
         * @return true if all fields matched
         */
    	@Override
        public final boolean validate(final int docid)
          throws IOException
        {
    	  FacetHitCollector.CurrentPointers miss = null;
          
          for(int i = 0; i < _numPostFilters; i++)
          {
            FacetHitCollector.CurrentPointers cur = _collectors[i]._currentPointers;
            int sid = cur.doc;
            
            if(sid < docid)
            {
              sid = cur.postDocIDSetIterator.advance(docid);
              cur.doc = sid;
              if(sid == DocIdSetIterator.NO_MORE_DOCS)
              {
                // move this to front so that the call can find the failure faster
                FacetHitCollector tmp = _collectors[0];
                _collectors[0] = _collectors[i];
                _collectors[i] = tmp;
              }
            }
            
            if(sid > docid) //mismatch
            {
              if(miss != null)
              {
                // failed because we already have a mismatch
                _nextTarget = (miss.doc < cur.doc ? miss.doc : cur.doc);
                return false;
              }
              miss = cur;
            }
          }
          
          _nextTarget = docid + 1;
          
          if(miss != null)
          {
            miss.facetCountCollector.collect(docid);
            return false;
          }
          else
          {
            for (FacetCountCollector collector : _countCollectors)
            {
          	 collector.collect(docid);
            }
            return true;
          }
=======
      FacetHitCollector.CurrentPointers miss = null;

      for(int i = 0; i < _numPostFilters; i++)
      {
        FacetHitCollector.CurrentPointers cur = _collectors[i]._currentPointers;
        int sid = cur.doc;
        if(sid!=DocIdSetIterator.NO_MORE_DOCS)
        {
          if(sid == docid) continue; // matched

          if(sid < docid)
          {
            sid = cur.postDocIDSetIterator.advance(docid);
            cur.doc = sid;
            if(sid!=DocIdSetIterator.NO_MORE_DOCS)
            {
              if(sid == docid) continue; // matched
            }
            else
            {
              // move this to front so that the call can find the failure faster
              FacetHitCollector tmp = _collectors[0];
              _collectors[0] = _collectors[i];
              _collectors[i] = tmp;
            }
          }
        }

        if(miss != null)
        {
          // failed because we already have a mismatch
          _nextTarget = (miss.doc < cur.doc ? miss.doc : cur.doc);
          return false;
>>>>>>> a2029c1eb18ed75df8d2902f32a877564052b191
        }
        miss = cur;
      }
Solution content
    public final boolean validate(final int docid)
    throws IOException
    {
      FacetHitCollector.CurrentPointers miss = null;

      for(int i = 0; i < _numPostFilters; i++)
      {
        FacetHitCollector.CurrentPointers cur = _collectors[i]._currentPointers;
        int sid = cur.doc;

        if(sid < docid)
        {
          sid = cur.postDocIDSetIterator.advance(docid);
          cur.doc = sid;
          if(sid == DocIdSetIterator.NO_MORE_DOCS)
          {
            // move this to front so that the call can find the failure faster
            FacetHitCollector tmp = _collectors[0];
            _collectors[0] = _collectors[i];
            _collectors[i] = tmp;
          }
        }

        if(sid > docid) //mismatch
        {
          if(miss != null)
          {
            // failed because we already have a mismatch
            _nextTarget = (miss.doc < cur.doc ? miss.doc : cur.doc);
            return false;
          }
          miss = cur;
        }
      }
File
BoboSearcher2.java
Developer's decision
Combination
Kind of conflict
Annotation
Array access
Attribute
Class signature
Comment
For statement
If statement
Method declaration
Method interface
Method signature
Return statement
Variable
Chunk
Conflicting content
		@Override
        return true;
      }
    }
<<<<<<< HEAD
    
    private final static class OnePostFilterFacetValidator extends FacetValidator{
    	private FacetHitCollector _firsttime;
    	OnePostFilterFacetValidator(FacetHitCollector[] collectors,FacetCountCollectorSource[] countCollectors) throws IOException{
    		super(collectors,countCollectors,1);
    		_firsttime = _collectors[0];
    	}

		@Override
		public final boolean validate(int docid) throws IOException {
			FacetHitCollector.CurrentPointers miss = null;
			
            RandomAccessDocIdSet set = _firsttime._currentPointers.docidSet;
            if (set!=null && !set.get(docid))
            {
              miss = _firsttime._currentPointers;
            }

            _nextTarget = docid + 1;

            if(miss != null)
            {
              miss.facetCountCollector.collect(docid);
              return false;
            }
            else
            {
              for (FacetCountCollector collector : _countCollectors)
              {
            	 collector.collect(docid);
              }
              return true;
            }
		}
    }
    
    private final static class NoNeedFacetValidator extends FacetValidator{
    	NoNeedFacetValidator(FacetHitCollector[] collectors,FacetCountCollectorSource[] countCollectors) throws IOException{
    		super(collectors,countCollectors,0);
    	}
    	
		public final boolean validate(int docid) throws IOException {
			for (FacetCountCollector collector : _countCollectors){
              collector.collect(docid);
            }
            return true;
		}
    	
=======
  }

  private final static class OnePostFilterFacetValidator extends FacetValidator{
    private FacetHitCollector _firsttime;
    OnePostFilterFacetValidator(FacetHitCollector[] collectors,FacetCountCollectorSource[] countCollectors) throws IOException{
      super(collectors,countCollectors,1);
      _firsttime = _collectors[0];
    }

    @Override
    public final boolean validate(int docid) throws IOException {
      FacetHitCollector.CurrentPointers miss = null;

      RandomAccessDocIdSet set = _firsttime._currentPointers.docidSet;
      if (set!=null && !set.get(docid))
      {
        miss = _firsttime._currentPointers;
      }
      _nextTarget = docid + 1;

      if(miss != null)
      {
        miss.facetCountCollector.collect(docid);
        return false;
      }
      else
      {
        for (FacetCountCollector collector : _countCollectors)
        {
          collector.collect(docid);
        }
        return true;
      }
    }
  }

  private final static class NoNeedFacetValidator extends FacetValidator{
    NoNeedFacetValidator(FacetHitCollector[] collectors,FacetCountCollectorSource[] countCollectors) throws IOException{
      super(collectors,countCollectors,0);
    }

    @Override
    public final boolean validate(int docid) throws IOException {
      for (FacetCountCollector collector : _countCollectors){
        collector.collect(docid);
      }
      return true;
    }

  }

  protected FacetValidator createFacetValidator() throws IOException
  {

    FacetHitCollector[] collectors = new FacetHitCollector[_facetCollectors.size()];
    FacetCountCollectorSource[] countCollectors = new FacetCountCollectorSource[collectors.length];
    int numPostFilters;
    int i = 0;
    int j = collectors.length;

    for (FacetHitCollector facetCollector : _facetCollectors)
    {
      if (facetCollector._filter != null)
      {
        collectors[i] = facetCollector;
        countCollectors[i]=facetCollector._facetCountCollectorSource;
        i++;
      }
      else
      {
        j--;
        collectors[j] = facetCollector;
        countCollectors[j] = facetCollector._facetCountCollectorSource;
      }
>>>>>>> a2029c1eb18ed75df8d2902f32a877564052b191
    }
    numPostFilters = i;
Solution content
        return true;
      }
    }
  }

  private final static class OnePostFilterFacetValidator extends FacetValidator{
    private FacetHitCollector _firsttime;
    OnePostFilterFacetValidator(FacetHitCollector[] collectors,FacetCountCollectorSource[] countCollectors) throws IOException{
      super(collectors,countCollectors,1);
      _firsttime = _collectors[0];
    }

    @Override
    public final boolean validate(int docid) throws IOException {
      FacetHitCollector.CurrentPointers miss = null;

      RandomAccessDocIdSet set = _firsttime._currentPointers.docidSet;
      if (set!=null && !set.get(docid))
      {
        miss = _firsttime._currentPointers;
      }

      _nextTarget = docid + 1;

      if(miss != null)
      {
        miss.facetCountCollector.collect(docid);
        return false;
      }
      else
      {
        for (FacetCountCollector collector : _countCollectors)
        {
          collector.collect(docid);
        }
        return true;
      }
    }
  }

  private final static class NoNeedFacetValidator extends FacetValidator{
    NoNeedFacetValidator(FacetHitCollector[] collectors,FacetCountCollectorSource[] countCollectors) throws IOException{
      super(collectors,countCollectors,0);
    }

    @Override
    public final boolean validate(int docid) throws IOException {
      for (FacetCountCollector collector : _countCollectors){
        collector.collect(docid);
      }
      return true;
    }

  }

  protected FacetValidator createFacetValidator() throws IOException
  {

    FacetHitCollector[] collectors = new FacetHitCollector[_facetCollectors.size()];
    FacetCountCollectorSource[] countCollectors = new FacetCountCollectorSource[collectors.length];
    int numPostFilters;
    int i = 0;
    int j = collectors.length;

    for (FacetHitCollector facetCollector : _facetCollectors)
    {
      if (facetCollector._filter != null) 
      {
        collectors[i] = facetCollector;
        countCollectors[i]=facetCollector._facetCountCollectorSource;
        i++;
      }
      else
      {
        j--;
        collectors[j] = facetCollector;
        countCollectors[j] = facetCollector._facetCountCollectorSource;
      }
    }
    numPostFilters = i;
File
BoboSearcher2.java
Developer's decision
Version 2
Kind of conflict
Annotation
Class declaration
Class signature
For statement
If statement
Method declaration
Method invocation
Method signature
Variable
Chunk
Conflicting content
      return;
    }
            target = scorer.advance(target);
          }
        }
<<<<<<< HEAD
        numPostFilters = i;

      if(numPostFilters == 0){
        return new NoNeedFacetValidator(collectors,countCollectors);
      }
      else if (numPostFilters==1){
    	return new OnePostFilterFacetValidator(collectors,countCollectors);  
      }
      else{
        return new DefaultFacetValidator(collectors,countCollectors,numPostFilters);
=======
      }
>>>>>>> a2029c1eb18ed75df8d2902f32a877564052b191
      }
Solution content
            target = scorer.advance(target);
          }
        }
      }
      }
      return;
    }
File
BoboSearcher2.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Return statement
Variable
Chunk
Conflicting content
            if(doc == DocIdSetIterator.NO_MORE_DOCS) break;
          }

<<<<<<< HEAD
        for (int i = 0; i < _subReaders.length; i++) {
        	DocIdSet filterDocIdSet = filter.getDocIdSet(_subReaders[i]);
        	if (filterDocIdSet == null) return;
        	int docStart = start + _docStarts[i];
        	collector.setNextReader(_subReaders[i], docStart);
        	validator.setNextReader(_subReaders[i], docStart);
            Scorer scorer = weight.scorer(_subReaders[i], true, false);
            if (scorer!=null){
            	collector.setScorer(scorer);
	        	DocIdSetIterator filterDocIdIterator = filterDocIdSet.iterator(); // CHECKME: use ConjunctionScorer here?
	        		            
	            int doc = -1;
                target = filterDocIdIterator.nextDoc();
	            while(target < DocIdSetIterator.NO_MORE_DOCS)
	            {
	              if(doc < target)
	              {
	            	doc = scorer.advance(target);
	              }
	              
	              if(doc == target) // permitted by filter
	              {
	                if(validator.validate(doc))
	                {
	                  collector.collect(doc);
	                  
	                  target = filterDocIdIterator.nextDoc();
	                }
	                else
	                {
	                  // skip to the next possible docid
	                  target = filterDocIdIterator.advance(validator._nextTarget);
	                }
	              }
	              else // doc > target
	              {
                    if(doc == DocIdSetIterator.NO_MORE_DOCS) break;
	                target = filterDocIdIterator.advance(doc);
	              }
                }
=======
          if(doc == target) // permitted by filter
          {
            if(validator.validate(doc))
            {
              collector.collect(doc);

              target = filterDocIdIterator.nextDoc();
              if(target == DocIdSetIterator.NO_MORE_DOCS) break;
              continue;
>>>>>>> a2029c1eb18ed75df8d2902f32a877564052b191
            }
            else
            {
Solution content
          }

          if(doc == target) // permitted by filter
          {
            if(validator.validate(doc))
            {
              collector.collect(doc);

              target = filterDocIdIterator.nextDoc();
            }
            else
            {
File
BoboSearcher2.java
Developer's decision
Combination
Kind of conflict
Array access
Comment
Continue statement
For statement
If statement
Method invocation
Variable
While statement
Chunk
Conflicting content
        _bottom = _currentQueue.replace(_tmpScoreDoc);
        _tmpScoreDoc = tmp;
      }
<<<<<<< HEAD
=======
      ScoreDoc tmp = _bottom;
      _bottom = _currentQueue.replace(_tmpScoreDoc);
      _tmpScoreDoc = tmp;
>>>>>>> a2029c1eb18ed75df8d2902f32a877564052b191
    }
    else{ 
      _bottom = _currentQueue.add(new MyScoreDoc(doc,score,_currentQueue,_currentReader));
Solution content
        _bottom = _currentQueue.replace(_tmpScoreDoc);
        _tmpScoreDoc = tmp;
      }
    }
    else{ 
      _bottom = _currentQueue.add(new MyScoreDoc(doc,score,_currentQueue,_currentReader));
File
SortCollectorImpl.java
Developer's decision
Version 1
Kind of conflict
Attribute
Method invocation
Variable