1 21 package com.db4o.inside.fieldindex; 22 23 import com.db4o.*; 24 import com.db4o.foundation.*; 25 import com.db4o.inside.btree.*; 26 27 public class FieldIndexProcessorResult { 28 29 30 public static final FieldIndexProcessorResult NO_INDEX_FOUND = new FieldIndexProcessorResult(null); 31 32 public static final FieldIndexProcessorResult FOUND_INDEX_BUT_NO_MATCH = new FieldIndexProcessorResult(null); 33 34 private final IndexedNode _indexedNode; 35 36 public FieldIndexProcessorResult(IndexedNode indexedNode) { 37 _indexedNode = indexedNode; 38 } 39 40 public Tree toQCandidate(QCandidates candidates){ 41 return TreeInt.toQCandidate(toTreeInt(), candidates); 42 } 43 44 public TreeInt toTreeInt(){ 45 if(foundMatch()){ 46 return _indexedNode.toTreeInt(); 47 } 48 return null; 49 } 50 51 public boolean foundMatch(){ 52 return foundIndex() && ! noMatch(); 53 } 54 55 public boolean foundIndex(){ 56 return this != NO_INDEX_FOUND; 57 } 58 59 public boolean noMatch(){ 60 return this == FOUND_INDEX_BUT_NO_MATCH; 61 } 62 63 public Iterator4 iterateIDs(){ 64 return new MappingIterator(_indexedNode.iterator()) { 65 protected Object map(Object current) { 66 FieldIndexKey composite = (FieldIndexKey)current; 67 return new Integer (composite.parentID()); 68 } 69 }; 70 } 71 72 } | Popular Tags |