Index: src/java/org/apache/lucene/analysis/ASCIIFoldingFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/ASCIIFoldingFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/ASCIIFoldingFilter.java (working copy) @@ -67,6 +67,7 @@ private int outputPos; private TermAttribute termAtt; + @Override public boolean incrementToken() throws IOException { if (input.incrementToken()) { final char[] buffer = termAtt.termBuffer(); Index: src/java/org/apache/lucene/analysis/BaseCharFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/BaseCharFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/BaseCharFilter.java (working copy) @@ -44,6 +44,7 @@ * recently added position, as it's a simple linear * search backwards through all offset corrections added * by {@link #addOffCorrectMap}. */ + @Override protected int correct(int currentOff) { if (pcmList == null || pcmList.isEmpty()) { return currentOff; @@ -78,6 +79,7 @@ this.cumulativeDiff = cumulativeDiff; } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append('('); Index: src/java/org/apache/lucene/analysis/CachingTokenFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/CachingTokenFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/CachingTokenFilter.java (working copy) @@ -42,6 +42,7 @@ super(input); } + @Override public final boolean incrementToken() throws IOException { if (cache == null) { // fill cache lazily @@ -59,12 +60,14 @@ return true; } + @Override public final void end() throws IOException { if (finalState != null) { restoreState(finalState); } } + @Override public void reset() throws IOException { if(cache != null) { iterator = cache.iterator(); Index: src/java/org/apache/lucene/analysis/CharArraySet.java =================================================================== --- src/java/org/apache/lucene/analysis/CharArraySet.java (revision 830378) +++ src/java/org/apache/lucene/analysis/CharArraySet.java (working copy) @@ -223,14 +223,17 @@ } + @Override public int size() { return count; } + @Override public boolean isEmpty() { return count==0; } + @Override public boolean contains(Object o) { if (o instanceof char[]) { final char[] text = (char[])o; @@ -239,6 +242,7 @@ return contains(o.toString()); } + @Override public boolean add(Object o) { if (o instanceof char[]) { return add((char[])o); @@ -309,6 +313,7 @@ } /** returns an iterator of new allocated Strings, this method violates the Set interface */ + @Override @SuppressWarnings("unchecked") public Iterator iterator() { return (Iterator) stringIterator(); @@ -328,22 +333,27 @@ super(entries, ignoreCase, count); } + @Override public boolean add(Object o){ throw new UnsupportedOperationException(); } + @Override public boolean addAll(Collection coll) { throw new UnsupportedOperationException(); } + @Override public boolean add(char[] text) { throw new UnsupportedOperationException(); } + @Override public boolean add(CharSequence text) { throw new UnsupportedOperationException(); } + @Override public boolean add(String text) { throw new UnsupportedOperationException(); } Index: src/java/org/apache/lucene/analysis/CharFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/CharFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/CharFilter.java (working copy) @@ -50,26 +50,32 @@ * Chains the corrected offset through the input * CharFilter. */ + @Override public final int correctOffset(int currentOff) { return input.correctOffset(correct(currentOff)); } + @Override public void close() throws IOException { input.close(); } + @Override public int read(char[] cbuf, int off, int len) throws IOException { return input.read(cbuf, off, len); } + @Override public boolean markSupported(){ return input.markSupported(); } + @Override public void mark( int readAheadLimit ) throws IOException { input.mark(readAheadLimit); } + @Override public void reset() throws IOException { input.reset(); } Index: src/java/org/apache/lucene/analysis/CharReader.java =================================================================== --- src/java/org/apache/lucene/analysis/CharReader.java (revision 830378) +++ src/java/org/apache/lucene/analysis/CharReader.java (working copy) @@ -39,26 +39,32 @@ input = in; } + @Override public int correctOffset(int currentOff) { return currentOff; } + @Override public void close() throws IOException { input.close(); } + @Override public int read(char[] cbuf, int off, int len) throws IOException { return input.read(cbuf, off, len); } + @Override public boolean markSupported(){ return input.markSupported(); } + @Override public void mark( int readAheadLimit ) throws IOException { input.mark(readAheadLimit); } + @Override public void reset() throws IOException { input.reset(); } Index: src/java/org/apache/lucene/analysis/CharTokenizer.java =================================================================== --- src/java/org/apache/lucene/analysis/CharTokenizer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/CharTokenizer.java (working copy) @@ -65,6 +65,7 @@ return c; } + @Override public final boolean incrementToken() throws IOException { clearAttributes(); int length = 0; @@ -108,12 +109,14 @@ return true; } + @Override public final void end() { // set final offset int finalOffset = correctOffset(offset); offsetAtt.setOffset(finalOffset, finalOffset); } + @Override public void reset(Reader input) throws IOException { super.reset(input); bufferIndex = 0; Index: src/java/org/apache/lucene/analysis/ISOLatin1AccentFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/ISOLatin1AccentFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/ISOLatin1AccentFilter.java (working copy) @@ -41,6 +41,7 @@ private int outputPos; private TermAttribute termAtt; + @Override public final boolean incrementToken() throws java.io.IOException { if (input.incrementToken()) { final char[] buffer = termAtt.termBuffer(); Index: src/java/org/apache/lucene/analysis/KeywordAnalyzer.java =================================================================== --- src/java/org/apache/lucene/analysis/KeywordAnalyzer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/KeywordAnalyzer.java (working copy) @@ -28,10 +28,12 @@ public KeywordAnalyzer() { setOverridesTokenStreamMethod(KeywordAnalyzer.class); } + @Override public TokenStream tokenStream(String fieldName, final Reader reader) { return new KeywordTokenizer(reader); } + @Override public TokenStream reusableTokenStream(String fieldName, final Reader reader) throws IOException { if (overridesTokenStreamMethod) { Index: src/java/org/apache/lucene/analysis/KeywordTokenizer.java =================================================================== --- src/java/org/apache/lucene/analysis/KeywordTokenizer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/KeywordTokenizer.java (working copy) @@ -62,6 +62,7 @@ termAtt.resizeTermBuffer(bufferSize); } + @Override public final boolean incrementToken() throws IOException { if (!done) { clearAttributes(); @@ -83,11 +84,13 @@ return false; } + @Override public final void end() { // set final offset offsetAtt.setOffset(finalOffset, finalOffset); } + @Override public void reset(Reader input) throws IOException { super.reset(input); this.done = false; Index: src/java/org/apache/lucene/analysis/LengthFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/LengthFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/LengthFilter.java (working copy) @@ -46,6 +46,7 @@ /** * Returns the next input Token whose term() is the right len */ + @Override public final boolean incrementToken() throws IOException { // return the first non-stop word found while (input.incrementToken()) { Index: src/java/org/apache/lucene/analysis/LetterTokenizer.java =================================================================== --- src/java/org/apache/lucene/analysis/LetterTokenizer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/LetterTokenizer.java (working copy) @@ -46,6 +46,7 @@ /** Collects only characters which satisfy * {@link Character#isLetter(char)}.*/ + @Override protected boolean isTokenChar(char c) { return Character.isLetter(c); } Index: src/java/org/apache/lucene/analysis/LowerCaseFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/LowerCaseFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/LowerCaseFilter.java (working copy) @@ -32,6 +32,7 @@ private TermAttribute termAtt; + @Override public final boolean incrementToken() throws IOException { if (input.incrementToken()) { Index: src/java/org/apache/lucene/analysis/LowerCaseTokenizer.java =================================================================== --- src/java/org/apache/lucene/analysis/LowerCaseTokenizer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/LowerCaseTokenizer.java (working copy) @@ -49,6 +49,7 @@ /** Converts char to lower case * {@link Character#toLowerCase(char)}.*/ + @Override protected char normalize(char c) { return Character.toLowerCase(c); } Index: src/java/org/apache/lucene/analysis/MappingCharFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/MappingCharFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/MappingCharFilter.java (working copy) @@ -47,6 +47,7 @@ this.normMap = normMap; } + @Override public int read() throws IOException { while(true) { if (replacement != null && charPointer < replacement.length()) { @@ -116,6 +117,7 @@ return result; } + @Override public int read(char[] cbuf, int off, int len) throws IOException { char[] tmp = new char[len]; int l = input.read(tmp, 0, len); Index: src/java/org/apache/lucene/analysis/PerFieldAnalyzerWrapper.java =================================================================== --- src/java/org/apache/lucene/analysis/PerFieldAnalyzerWrapper.java (revision 830378) +++ src/java/org/apache/lucene/analysis/PerFieldAnalyzerWrapper.java (working copy) @@ -86,6 +86,7 @@ analyzerMap.put(fieldName, analyzer); } + @Override public TokenStream tokenStream(String fieldName, Reader reader) { Analyzer analyzer = analyzerMap.get(fieldName); if (analyzer == null) { @@ -95,6 +96,7 @@ return analyzer.tokenStream(fieldName, reader); } + @Override public TokenStream reusableTokenStream(String fieldName, Reader reader) throws IOException { if (overridesTokenStreamMethod) { // LUCENE-1678: force fallback to tokenStream() if we @@ -110,6 +112,7 @@ } /** Return the positionIncrementGap from the analyzer assigned to fieldName */ + @Override public int getPositionIncrementGap(String fieldName) { Analyzer analyzer = analyzerMap.get(fieldName); if (analyzer == null) @@ -117,6 +120,7 @@ return analyzer.getPositionIncrementGap(fieldName); } + @Override public String toString() { return "PerFieldAnalyzerWrapper(" + analyzerMap + ", default=" + defaultAnalyzer + ")"; } Index: src/java/org/apache/lucene/analysis/PorterStemFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/PorterStemFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/PorterStemFilter.java (working copy) @@ -49,6 +49,7 @@ termAtt = addAttribute(TermAttribute.class); } + @Override public final boolean incrementToken() throws IOException { if (!input.incrementToken()) return false; Index: src/java/org/apache/lucene/analysis/PorterStemmer.java =================================================================== --- src/java/org/apache/lucene/analysis/PorterStemmer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/PorterStemmer.java (working copy) @@ -94,6 +94,7 @@ * or a reference to the internal buffer can be retrieved by getResultBuffer * and getResultLength (which is generally more efficient.) */ + @Override public String toString() { return new String(b,0,i); } /** Index: src/java/org/apache/lucene/analysis/SimpleAnalyzer.java =================================================================== --- src/java/org/apache/lucene/analysis/SimpleAnalyzer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/SimpleAnalyzer.java (working copy) @@ -24,10 +24,12 @@ * with {@link LowerCaseFilter} */ public final class SimpleAnalyzer extends Analyzer { + @Override public TokenStream tokenStream(String fieldName, Reader reader) { return new LowerCaseTokenizer(reader); } + @Override public TokenStream reusableTokenStream(String fieldName, Reader reader) throws IOException { Tokenizer tokenizer = (Tokenizer) getPreviousTokenStream(); if (tokenizer == null) { Index: src/java/org/apache/lucene/analysis/standard/StandardAnalyzer.java =================================================================== --- src/java/org/apache/lucene/analysis/standard/StandardAnalyzer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/standard/StandardAnalyzer.java (working copy) @@ -95,6 +95,7 @@ /** Constructs a {@link StandardTokenizer} filtered by a {@link StandardFilter}, a {@link LowerCaseFilter} and a {@link StopFilter}. */ + @Override public TokenStream tokenStream(String fieldName, Reader reader) { StandardTokenizer tokenStream = new StandardTokenizer(matchVersion, reader); tokenStream.setMaxTokenLength(maxTokenLength); @@ -132,6 +133,7 @@ return maxTokenLength; } + @Override public TokenStream reusableTokenStream(String fieldName, Reader reader) throws IOException { if (overridesTokenStreamMethod) { // LUCENE-1678: force fallback to tokenStream() if we Index: src/java/org/apache/lucene/analysis/standard/StandardFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/standard/StandardFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/standard/StandardFilter.java (working copy) @@ -45,6 +45,7 @@ *

Removes 's from the end of words. *

Removes dots from acronyms. */ + @Override public final boolean incrementToken() throws java.io.IOException { if (!input.incrementToken()) { return false; Index: src/java/org/apache/lucene/analysis/standard/StandardTokenizer.java =================================================================== --- src/java/org/apache/lucene/analysis/standard/StandardTokenizer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/standard/StandardTokenizer.java (working copy) @@ -170,6 +170,7 @@ * * @see org.apache.lucene.analysis.TokenStream#next() */ + @Override public final boolean incrementToken() throws IOException { clearAttributes(); int posIncr = 1; @@ -207,6 +208,7 @@ } } + @Override public final void end() { // set final offset int finalOffset = correctOffset(scanner.yychar() + scanner.yylength()); @@ -218,11 +220,13 @@ * * @see org.apache.lucene.analysis.TokenStream#reset() */ + @Override public void reset() throws IOException { super.reset(); scanner.yyreset(input); } + @Override public void reset(Reader reader) throws IOException { super.reset(reader); reset(); Index: src/java/org/apache/lucene/analysis/StopAnalyzer.java =================================================================== --- src/java/org/apache/lucene/analysis/StopAnalyzer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/StopAnalyzer.java (working copy) @@ -93,6 +93,7 @@ } /** Filters LowerCaseTokenizer with StopFilter. */ + @Override public TokenStream tokenStream(String fieldName, Reader reader) { return new StopFilter(enablePositionIncrements, new LowerCaseTokenizer(reader), stopWords); } @@ -102,6 +103,7 @@ Tokenizer source; TokenStream result; }; + @Override public TokenStream reusableTokenStream(String fieldName, Reader reader) throws IOException { SavedStreams streams = (SavedStreams) getPreviousTokenStream(); if (streams == null) { Index: src/java/org/apache/lucene/analysis/StopFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/StopFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/StopFilter.java (working copy) @@ -134,6 +134,7 @@ /** * Returns the next input Token whose term() is not a stop word. */ + @Override public final boolean incrementToken() throws IOException { // return the first non-stop word found int skippedPositions = 0; Index: src/java/org/apache/lucene/analysis/TeeSinkTokenFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/TeeSinkTokenFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/TeeSinkTokenFilter.java (working copy) @@ -127,6 +127,7 @@ while (incrementToken()); } + @Override public boolean incrementToken() throws IOException { if (input.incrementToken()) { // capture state lazily - maybe no SinkFilter accepts this state @@ -148,6 +149,7 @@ return false; } + @Override public final void end() throws IOException { super.end(); AttributeSource.State finalState = captureState(); @@ -204,6 +206,7 @@ this.finalState = finalState; } + @Override public final boolean incrementToken() throws IOException { // lazy init the iterator if (it == null) { @@ -219,18 +222,21 @@ return true; } + @Override public final void end() throws IOException { if (finalState != null) { restoreState(finalState); } } + @Override public final void reset() { it = cachedStates.iterator(); } } private static final SinkFilter ACCEPT_ALL_FILTER = new SinkFilter() { + @Override public boolean accept(AttributeSource source) { return true; } Index: src/java/org/apache/lucene/analysis/Token.java =================================================================== --- src/java/org/apache/lucene/analysis/Token.java (revision 830378) +++ src/java/org/apache/lucene/analysis/Token.java (working copy) @@ -487,6 +487,7 @@ this.payload = payload; } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append('('); @@ -507,6 +508,7 @@ /** Resets the term text, payload, flags, and positionIncrement, * startOffset, endOffset and token type to default. */ + @Override public void clear() { payload = null; // Leave termBuffer to allow re-use @@ -517,6 +519,7 @@ type = DEFAULT_TYPE; } + @Override public Object clone() { Token t = (Token)super.clone(); // Do a deep clone @@ -544,6 +547,7 @@ return t; } + @Override public boolean equals(Object obj) { if (obj == this) return true; @@ -578,6 +582,7 @@ return o1.equals(o2); } + @Override public int hashCode() { initTermBuffer(); int code = termLength; @@ -739,6 +744,7 @@ payload = prototype.payload; } + @Override public void copyTo(AttributeImpl target) { if (target instanceof Token) { final Token to = (Token) target; @@ -780,11 +786,13 @@ this.delegate = delegate; } + @Override public AttributeImpl createAttributeInstance(Class attClass) { return attClass.isAssignableFrom(Token.class) ? new Token() : delegate.createAttributeInstance(attClass); } + @Override public boolean equals(Object other) { if (this == other) return true; if (other instanceof TokenAttributeFactory) { @@ -794,6 +802,7 @@ return false; } + @Override public int hashCode() { return delegate.hashCode() ^ 0x0a45aa31; } Index: src/java/org/apache/lucene/analysis/tokenattributes/FlagsAttributeImpl.java =================================================================== --- src/java/org/apache/lucene/analysis/tokenattributes/FlagsAttributeImpl.java (revision 830378) +++ src/java/org/apache/lucene/analysis/tokenattributes/FlagsAttributeImpl.java (working copy) @@ -49,10 +49,12 @@ this.flags = flags; } + @Override public void clear() { flags = 0; } + @Override public boolean equals(Object other) { if (this == other) { return true; @@ -65,10 +67,12 @@ return false; } + @Override public int hashCode() { return flags; } + @Override public void copyTo(AttributeImpl target) { FlagsAttribute t = (FlagsAttribute) target; t.setFlags(flags); Index: src/java/org/apache/lucene/analysis/tokenattributes/OffsetAttributeImpl.java =================================================================== --- src/java/org/apache/lucene/analysis/tokenattributes/OffsetAttributeImpl.java (revision 830378) +++ src/java/org/apache/lucene/analysis/tokenattributes/OffsetAttributeImpl.java (working copy) @@ -55,11 +55,13 @@ } + @Override public void clear() { startOffset = 0; endOffset = 0; } + @Override public boolean equals(Object other) { if (other == this) { return true; @@ -73,12 +75,14 @@ return false; } + @Override public int hashCode() { int code = startOffset; code = code * 31 + endOffset; return code; } + @Override public void copyTo(AttributeImpl target) { OffsetAttribute t = (OffsetAttribute) target; t.setOffset(startOffset, endOffset); Index: src/java/org/apache/lucene/analysis/tokenattributes/PayloadAttributeImpl.java =================================================================== --- src/java/org/apache/lucene/analysis/tokenattributes/PayloadAttributeImpl.java (revision 830378) +++ src/java/org/apache/lucene/analysis/tokenattributes/PayloadAttributeImpl.java (working copy) @@ -54,10 +54,12 @@ this.payload = payload; } + @Override public void clear() { payload = null; } + @Override public Object clone() { PayloadAttributeImpl clone = (PayloadAttributeImpl) super.clone(); if (payload != null) { @@ -66,6 +68,7 @@ return clone; } + @Override public boolean equals(Object other) { if (other == this) { return true; @@ -83,10 +86,12 @@ return false; } + @Override public int hashCode() { return (payload == null) ? 0 : payload.hashCode(); } + @Override public void copyTo(AttributeImpl target) { PayloadAttribute t = (PayloadAttribute) target; t.setPayload((payload == null) ? null : (Payload) payload.clone()); Index: src/java/org/apache/lucene/analysis/tokenattributes/PositionIncrementAttributeImpl.java =================================================================== --- src/java/org/apache/lucene/analysis/tokenattributes/PositionIncrementAttributeImpl.java (revision 830378) +++ src/java/org/apache/lucene/analysis/tokenattributes/PositionIncrementAttributeImpl.java (working copy) @@ -67,10 +67,12 @@ return positionIncrement; } + @Override public void clear() { this.positionIncrement = 1; } + @Override public boolean equals(Object other) { if (other == this) { return true; @@ -83,10 +85,12 @@ return false; } + @Override public int hashCode() { return positionIncrement; } + @Override public void copyTo(AttributeImpl target) { PositionIncrementAttribute t = (PositionIncrementAttribute) target; t.setPositionIncrement(positionIncrement); Index: src/java/org/apache/lucene/analysis/tokenattributes/TermAttributeImpl.java =================================================================== --- src/java/org/apache/lucene/analysis/tokenattributes/TermAttributeImpl.java (revision 830378) +++ src/java/org/apache/lucene/analysis/tokenattributes/TermAttributeImpl.java (working copy) @@ -164,6 +164,7 @@ termLength = length; } + @Override public int hashCode() { initTermBuffer(); int code = termLength; @@ -171,10 +172,12 @@ return code; } + @Override public void clear() { termLength = 0; } + @Override public Object clone() { TermAttributeImpl t = (TermAttributeImpl)super.clone(); // Do a deep clone @@ -184,6 +187,7 @@ return t; } + @Override public boolean equals(Object other) { if (other == this) { return true; @@ -207,11 +211,13 @@ return false; } + @Override public String toString() { initTermBuffer(); return "term=" + new String(termBuffer, 0, termLength); } + @Override public void copyTo(AttributeImpl target) { initTermBuffer(); TermAttribute t = (TermAttribute) target; Index: src/java/org/apache/lucene/analysis/tokenattributes/TypeAttributeImpl.java =================================================================== --- src/java/org/apache/lucene/analysis/tokenattributes/TypeAttributeImpl.java (revision 830378) +++ src/java/org/apache/lucene/analysis/tokenattributes/TypeAttributeImpl.java (working copy) @@ -47,10 +47,12 @@ this.type = type; } + @Override public void clear() { type = DEFAULT_TYPE; } + @Override public boolean equals(Object other) { if (other == this) { return true; @@ -63,10 +65,12 @@ return false; } + @Override public int hashCode() { return type.hashCode(); } + @Override public void copyTo(AttributeImpl target) { TypeAttribute t = (TypeAttribute) target; t.setType(type); Index: src/java/org/apache/lucene/analysis/TokenFilter.java =================================================================== --- src/java/org/apache/lucene/analysis/TokenFilter.java (revision 830378) +++ src/java/org/apache/lucene/analysis/TokenFilter.java (working copy) @@ -37,16 +37,19 @@ /** Performs end-of-stream operations, if any, and calls then end() on the * input TokenStream.

* NOTE: Be sure to call super.end() first when overriding this method.*/ + @Override public void end() throws IOException { input.end(); } /** Close the input TokenStream. */ + @Override public void close() throws IOException { input.close(); } /** Reset the filter as well as the input TokenStream. */ + @Override public void reset() throws IOException { input.reset(); } Index: src/java/org/apache/lucene/analysis/Tokenizer.java =================================================================== --- src/java/org/apache/lucene/analysis/Tokenizer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/Tokenizer.java (working copy) @@ -67,6 +67,7 @@ } /** By default, closes the input Reader. */ + @Override public void close() throws IOException { input.close(); } Index: src/java/org/apache/lucene/analysis/WhitespaceAnalyzer.java =================================================================== --- src/java/org/apache/lucene/analysis/WhitespaceAnalyzer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/WhitespaceAnalyzer.java (working copy) @@ -23,10 +23,12 @@ /** An Analyzer that uses {@link WhitespaceTokenizer}. */ public final class WhitespaceAnalyzer extends Analyzer { + @Override public TokenStream tokenStream(String fieldName, Reader reader) { return new WhitespaceTokenizer(reader); } + @Override public TokenStream reusableTokenStream(String fieldName, Reader reader) throws IOException { Tokenizer tokenizer = (Tokenizer) getPreviousTokenStream(); if (tokenizer == null) { Index: src/java/org/apache/lucene/analysis/WhitespaceTokenizer.java =================================================================== --- src/java/org/apache/lucene/analysis/WhitespaceTokenizer.java (revision 830378) +++ src/java/org/apache/lucene/analysis/WhitespaceTokenizer.java (working copy) @@ -42,6 +42,7 @@ /** Collects only characters which do not satisfy * {@link Character#isWhitespace(char)}.*/ + @Override protected boolean isTokenChar(char c) { return !Character.isWhitespace(c); } Index: src/java/org/apache/lucene/document/AbstractField.java =================================================================== --- src/java/org/apache/lucene/document/AbstractField.java (revision 830378) +++ src/java/org/apache/lucene/document/AbstractField.java (working copy) @@ -235,6 +235,7 @@ } /** Prints a Field for human consumption. */ + @Override public final String toString() { StringBuilder result = new StringBuilder(); if (isStored) { Index: src/java/org/apache/lucene/document/DateTools.java =================================================================== --- src/java/org/apache/lucene/document/DateTools.java (revision 830378) +++ src/java/org/apache/lucene/document/DateTools.java (working copy) @@ -246,6 +246,7 @@ this.resolution = resolution; } + @Override public String toString() { return resolution; } Index: src/java/org/apache/lucene/document/Document.java =================================================================== --- src/java/org/apache/lucene/document/Document.java (revision 830378) +++ src/java/org/apache/lucene/document/Document.java (working copy) @@ -289,6 +289,7 @@ } /** Prints the fields of a document for human consumption. */ + @Override public final String toString() { StringBuilder buffer = new StringBuilder(); buffer.append("Document<"); Index: src/java/org/apache/lucene/document/Field.java =================================================================== --- src/java/org/apache/lucene/document/Field.java (revision 830378) +++ src/java/org/apache/lucene/document/Field.java (working copy) @@ -43,12 +43,13 @@ * stored. */ YES { + @Override public boolean isStored() { return true; } }, /** Do not store the field value in the index. */ - NO - { + NO { + @Override public boolean isStored() { return false; } }; @@ -62,8 +63,11 @@ * but one can still access its contents provided it is * {@link Field.Store stored}. */ NO { + @Override public boolean isIndexed() { return false; } + @Override public boolean isAnalyzed() { return false; } + @Override public boolean omitNorms() { return true; } }, @@ -71,8 +75,11 @@ * value through an Analyzer. This is useful for * common text. */ ANALYZED { + @Override public boolean isIndexed() { return true; } + @Override public boolean isAnalyzed() { return true; } + @Override public boolean omitNorms() { return false; } }, @@ -81,8 +88,11 @@ * useful for unique Ids like product numbers. */ NOT_ANALYZED { + @Override public boolean isIndexed() { return true; } + @Override public boolean isAnalyzed() { return false; } + @Override public boolean omitNorms() { return false; } }, @@ -101,8 +111,11 @@ * that field must be indexed with NOT_ANALYZED_NO_NORMS * from the beginning. */ NOT_ANALYZED_NO_NORMS { + @Override public boolean isIndexed() { return true; } + @Override public boolean isAnalyzed() { return false; } + @Override public boolean omitNorms() { return true; } }, @@ -112,8 +125,11 @@ * {@link #NOT_ANALYZED_NO_NORMS} for what norms are * and why you may want to disable them. */ ANALYZED_NO_NORMS { + @Override public boolean isIndexed() { return true; } + @Override public boolean isAnalyzed() { return true; } + @Override public boolean omitNorms() { return true; } }; @@ -156,17 +172,23 @@ /** Do not store term vectors. */ NO { - public boolean isStored() { return false; } - public boolean withPositions() { return false; } - public boolean withOffsets() { return false; } + @Override + public boolean isStored() { return false; } + @Override + public boolean withPositions() { return false; } + @Override + public boolean withOffsets() { return false; } }, /** Store the term vectors of each document. A term vector is a list * of the document's terms and their number of occurrences in that document. */ YES { - public boolean isStored() { return true; } - public boolean withPositions() { return false; } - public boolean withOffsets() { return false; } + @Override + public boolean isStored() { return true; } + @Override + public boolean withPositions() { return false; } + @Override + public boolean withOffsets() { return false; } }, /** @@ -175,9 +197,12 @@ * @see #YES */ WITH_POSITIONS { - public boolean isStored() { return true; } - public boolean withPositions() { return true; } - public boolean withOffsets() { return false; } + @Override + public boolean isStored() { return true; } + @Override + public boolean withPositions() { return true; } + @Override + public boolean withOffsets() { return false; } }, /** @@ -186,9 +211,12 @@ * @see #YES */ WITH_OFFSETS { - public boolean isStored() { return true; } - public boolean withPositions() { return false; } - public boolean withOffsets() { return true; } + @Override + public boolean isStored() { return true; } + @Override + public boolean withPositions() { return false; } + @Override + public boolean withOffsets() { return true; } }, /** @@ -199,9 +227,12 @@ * @see #WITH_OFFSETS */ WITH_POSITIONS_OFFSETS { - public boolean isStored() { return true; } - public boolean withPositions() { return true; } - public boolean withOffsets() { return true; } + @Override + public boolean isStored() { return true; } + @Override + public boolean withPositions() { return true; } + @Override + public boolean withOffsets() { return true; } }; /** Get the best representation of a TermVector given the flags. */ @@ -209,7 +240,7 @@ // If it is not stored, nothing else matters. if (!stored) { - return TermVector.NO; + return TermVector.NO; } if (withOffsets) { @@ -337,7 +368,7 @@ * */ public Field(String name, String value, Store store, Index index, TermVector termVector) { - this(name, true, value, store, index, termVector); + this(name, true, value, store, index, termVector); } /** Index: src/java/org/apache/lucene/index/ByteSliceReader.java =================================================================== --- src/java/org/apache/lucene/index/ByteSliceReader.java (revision 830378) +++ src/java/org/apache/lucene/index/ByteSliceReader.java (working copy) @@ -66,6 +66,7 @@ return upto + bufferOffset == endIndex; } + @Override public byte readByte() { assert !eof(); assert upto <= limit; @@ -117,6 +118,7 @@ } } + @Override public void readBytes(byte[] b, int offset, int len) { while(len > 0) { final int numLeft = limit-upto; @@ -135,9 +137,13 @@ } } + @Override public long getFilePointer() {throw new RuntimeException("not implemented");} + @Override public long length() {throw new RuntimeException("not implemented");} + @Override public void seek(long pos) {throw new RuntimeException("not implemented");} + @Override public void close() {throw new RuntimeException("not implemented");} } Index: src/java/org/apache/lucene/index/CheckIndex.java =================================================================== --- src/java/org/apache/lucene/index/CheckIndex.java (revision 830378) +++ src/java/org/apache/lucene/index/CheckIndex.java (working copy) @@ -274,11 +274,13 @@ super(p); } + @Override public void seek(Term term) throws IOException { super.seek(term); delCount = 0; } + @Override protected void skippingDoc() throws IOException { delCount++; } Index: src/java/org/apache/lucene/index/CompoundFileReader.java =================================================================== --- src/java/org/apache/lucene/index/CompoundFileReader.java (revision 830378) +++ src/java/org/apache/lucene/index/CompoundFileReader.java (working copy) @@ -107,6 +107,7 @@ return fileName; } + @Override public synchronized void close() throws IOException { if (stream == null) throw new IOException("Already closed"); @@ -116,6 +117,7 @@ stream = null; } + @Override public synchronized IndexInput openInput(String id) throws IOException { @@ -123,6 +125,7 @@ return openInput(id, readBufferSize); } + @Override public synchronized IndexInput openInput(String id, int readBufferSize) throws IOException { @@ -137,28 +140,33 @@ } /** Returns an array of strings, one for each file in the directory. */ + @Override public String[] listAll() { String res[] = new String[entries.size()]; return entries.keySet().toArray(res); } /** Returns true iff a file with the given name exists. */ + @Override public boolean fileExists(String name) { return entries.containsKey(name); } /** Returns the time the compound file was last modified. */ + @Override public long fileModified(String name) throws IOException { return directory.fileModified(fileName); } /** Set the modified time of the compound file to now. */ + @Override public void touchFile(String name) throws IOException { directory.touchFile(fileName); } /** Not implemented * @throws UnsupportedOperationException */ + @Override public void deleteFile(String name) { throw new UnsupportedOperationException(); @@ -173,6 +181,7 @@ /** Returns the length of a file in the directory. * @throws IOException if the file does not exist */ + @Override public long fileLength(String name) throws IOException { @@ -184,6 +193,7 @@ /** Not implemented * @throws UnsupportedOperationException */ + @Override public IndexOutput createOutput(String name) { throw new UnsupportedOperationException(); @@ -191,6 +201,7 @@ /** Not implemented * @throws UnsupportedOperationException */ + @Override public Lock makeLock(String name) { throw new UnsupportedOperationException(); @@ -220,6 +231,7 @@ this.length = length; } + @Override public Object clone() { CSIndexInput clone = (CSIndexInput)super.clone(); clone.base = (IndexInput)base.clone(); @@ -234,6 +246,7 @@ * @param offset the offset in the array to start storing bytes * @param len the number of bytes to read */ + @Override protected void readInternal(byte[] b, int offset, int len) throws IOException { @@ -248,13 +261,16 @@ * the next {@link #readInternal(byte[],int,int)} will occur. * @see #readInternal(byte[],int,int) */ + @Override protected void seekInternal(long pos) {} /** Closes the stream to further operations. */ + @Override public void close() throws IOException { base.close(); } + @Override public long length() { return length; } Index: src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java =================================================================== --- src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java (revision 830378) +++ src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java (working copy) @@ -112,6 +112,7 @@ } } + @Override public void close() { closed = true; } @@ -146,6 +147,7 @@ return count; } + @Override public void merge(IndexWriter writer) throws CorruptIndexException, IOException { @@ -275,6 +277,7 @@ } } + @Override public void run() { // First time through the while loop we do the merge @@ -324,6 +327,7 @@ } } + @Override public String toString() { MergePolicy.OneMerge merge = getRunningMerge(); if (merge == null) Index: src/java/org/apache/lucene/index/DefaultSkipListReader.java =================================================================== --- src/java/org/apache/lucene/index/DefaultSkipListReader.java (revision 830378) +++ src/java/org/apache/lucene/index/DefaultSkipListReader.java (working copy) @@ -75,6 +75,7 @@ return lastPayloadLength; } + @Override protected void seekChild(int level) throws IOException { super.seekChild(level); freqPointer[level] = lastFreqPointer; @@ -82,6 +83,7 @@ payloadLength[level] = lastPayloadLength; } + @Override protected void setLastSkipData(int level) { super.setLastSkipData(level); lastFreqPointer = freqPointer[level]; @@ -90,6 +92,7 @@ } + @Override protected int readSkipData(int level, IndexInput skipStream) throws IOException { int delta; if (currentFieldStoresPayloads) { Index: src/java/org/apache/lucene/index/DefaultSkipListWriter.java =================================================================== --- src/java/org/apache/lucene/index/DefaultSkipListWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/DefaultSkipListWriter.java (working copy) @@ -74,6 +74,7 @@ this.curProxPointer = proxOutput.getFilePointer(); } + @Override protected void resetSkip() { super.resetSkip(); Arrays.fill(lastSkipDoc, 0); @@ -83,6 +84,7 @@ Arrays.fill(lastSkipProxPointer, proxOutput.getFilePointer()); } + @Override protected void writeSkipData(int level, IndexOutput skipBuffer) throws IOException { // To efficiently store payloads in the posting lists we do not store the length of // every payload. Instead we omit the length for a payload if the previous payload had Index: src/java/org/apache/lucene/index/DirectoryReader.java =================================================================== --- src/java/org/apache/lucene/index/DirectoryReader.java (revision 830378) +++ src/java/org/apache/lucene/index/DirectoryReader.java (working copy) @@ -67,6 +67,7 @@ static IndexReader open(final Directory directory, final IndexDeletionPolicy deletionPolicy, final IndexCommit commit, final boolean readOnly, final int termInfosIndexDivisor) throws CorruptIndexException, IOException { return (IndexReader) new SegmentInfos.FindSegmentsFile(directory) { + @Override protected Object doBody(String segmentFileName) throws CorruptIndexException, IOException { SegmentInfos infos = new SegmentInfos(); infos.read(directory, segmentFileName); @@ -311,6 +312,7 @@ starts[subReaders.length] = maxDoc; } + @Override public final synchronized Object clone() { try { return clone(readOnly); // Preserve current readOnly @@ -319,6 +321,7 @@ } } + @Override public final synchronized IndexReader clone(boolean openReadOnly) throws CorruptIndexException, IOException { DirectoryReader newReader = doReopen((SegmentInfos) segmentInfos.clone(), true, openReadOnly); @@ -341,15 +344,18 @@ return newReader; } + @Override public final synchronized IndexReader reopen() throws CorruptIndexException, IOException { // Preserve current readOnly return doReopen(readOnly, null); } + @Override public final synchronized IndexReader reopen(boolean openReadOnly) throws CorruptIndexException, IOException { return doReopen(openReadOnly, null); } + @Override public final synchronized IndexReader reopen(final IndexCommit commit) throws CorruptIndexException, IOException { return doReopen(true, commit); } @@ -420,6 +426,7 @@ } return (IndexReader) new SegmentInfos.FindSegmentsFile(directory) { + @Override protected Object doBody(String segmentFileName) throws CorruptIndexException, IOException { SegmentInfos infos = new SegmentInfos(); infos.read(directory, segmentFileName); @@ -439,17 +446,20 @@ } /** Version number when this IndexReader was opened. */ + @Override public long getVersion() { ensureOpen(); return segmentInfos.getVersion(); } + @Override public TermFreqVector[] getTermFreqVectors(int n) throws IOException { ensureOpen(); int i = readerIndex(n); // find segment num return subReaders[i].getTermFreqVectors(n - starts[i]); // dispatch to segment } + @Override public TermFreqVector getTermFreqVector(int n, String field) throws IOException { ensureOpen(); @@ -458,12 +468,14 @@ } + @Override public void getTermFreqVector(int docNumber, String field, TermVectorMapper mapper) throws IOException { ensureOpen(); int i = readerIndex(docNumber); // find segment num subReaders[i].getTermFreqVector(docNumber - starts[i], field, mapper); } + @Override public void getTermFreqVector(int docNumber, TermVectorMapper mapper) throws IOException { ensureOpen(); int i = readerIndex(docNumber); // find segment num @@ -474,11 +486,13 @@ * Checks is the index is optimized (if it has a single segment and no deletions) * @return true if the index is optimized; false otherwise */ + @Override public boolean isOptimized() { ensureOpen(); return segmentInfos.size() == 1 && !hasDeletions(); } + @Override public synchronized int numDocs() { // Don't call ensureOpen() here (it could affect performance) if (numDocs == -1) { // check cache @@ -490,29 +504,34 @@ return numDocs; } + @Override public int maxDoc() { // Don't call ensureOpen() here (it could affect performance) return maxDoc; } // inherit javadoc + @Override public Document document(int n, FieldSelector fieldSelector) throws CorruptIndexException, IOException { ensureOpen(); int i = readerIndex(n); // find segment num return subReaders[i].document(n - starts[i], fieldSelector); // dispatch to segment reader } + @Override public boolean isDeleted(int n) { // Don't call ensureOpen() here (it could affect performance) final int i = readerIndex(n); // find segment num return subReaders[i].isDeleted(n - starts[i]); // dispatch to segment reader } + @Override public boolean hasDeletions() { // Don't call ensureOpen() here (it could affect performance) return hasDeletions; } + @Override protected void doDelete(int n) throws CorruptIndexException, IOException { numDocs = -1; // invalidate cache int i = readerIndex(n); // find segment num @@ -520,6 +539,7 @@ hasDeletions = true; } + @Override protected void doUndeleteAll() throws CorruptIndexException, IOException { for (int i = 0; i < subReaders.length; i++) subReaders[i].undeleteAll(); @@ -553,6 +573,7 @@ return hi; } + @Override public boolean hasNorms(String field) throws IOException { ensureOpen(); for (int i = 0; i < subReaders.length; i++) { @@ -561,6 +582,7 @@ return false; } + @Override public synchronized byte[] norms(String field) throws IOException { ensureOpen(); byte[] bytes = normsCache.get(field); @@ -576,6 +598,7 @@ return bytes; } + @Override public synchronized void norms(String field, byte[] result, int offset) throws IOException { ensureOpen(); @@ -591,6 +614,7 @@ } } + @Override protected void doSetNorm(int n, String field, byte value) throws CorruptIndexException, IOException { synchronized (normsCache) { @@ -600,16 +624,19 @@ subReaders[i].setNorm(n-starts[i], field, value); // dispatch } + @Override public TermEnum terms() throws IOException { ensureOpen(); return new MultiTermEnum(this, subReaders, starts, null); } + @Override public TermEnum terms(Term term) throws IOException { ensureOpen(); return new MultiTermEnum(this, subReaders, starts, term); } + @Override public int docFreq(Term t) throws IOException { ensureOpen(); int total = 0; // sum freqs in segments @@ -618,11 +645,13 @@ return total; } + @Override public TermDocs termDocs() throws IOException { ensureOpen(); return new MultiTermDocs(this, subReaders, starts); } + @Override public TermPositions termPositions() throws IOException { ensureOpen(); return new MultiTermPositions(this, subReaders, starts); @@ -639,6 +668,7 @@ * obtained) * @throws IOException if there is a low-level IO error */ + @Override protected void acquireWriteLock() throws StaleReaderException, CorruptIndexException, LockObtainFailedException, IOException { if (readOnly) { @@ -679,6 +709,7 @@ * * @throws IOException if there is a low-level IO error */ + @Override protected void doCommit(Map commitUserData) throws IOException { if (hasChanges) { segmentInfos.setUserData(commitUserData); @@ -763,11 +794,13 @@ } } + @Override public Map getCommitUserData() { ensureOpen(); return segmentInfos.getUserData(); } + @Override public boolean isCurrent() throws CorruptIndexException, IOException { ensureOpen(); if (writer == null || writer.isClosed()) { @@ -778,6 +811,7 @@ } } + @Override protected synchronized void doClose() throws IOException { IOException ioe = null; normsCache = null; @@ -793,6 +827,7 @@ if (ioe != null) throw ioe; } + @Override public Collection getFieldNames (IndexReader.FieldOption fieldNames) { ensureOpen(); return getFieldNames(fieldNames, this.subReaders); @@ -808,11 +843,13 @@ return fieldSet; } + @Override public IndexReader[] getSequentialSubReaders() { return subReaders; } /** Returns the directory this index resides in. */ + @Override public Directory directory() { // Don't ensureOpen here -- in certain cases, when a // cloned/reopened reader needs to commit, it may call @@ -829,6 +866,7 @@ *

*

WARNING: this API is new and experimental and may suddenly change.

*/ + @Override public IndexCommit getIndexCommit() throws IOException { return new ReaderCommit(segmentInfos, directory); } @@ -896,34 +934,42 @@ isOptimized = infos.size() == 1 && !infos.info(0).hasDeletions(); } + @Override public boolean isOptimized() { return isOptimized; } + @Override public String getSegmentsFileName() { return segmentsFileName; } + @Override public Collection getFileNames() { return files; } + @Override public Directory getDirectory() { return dir; } + @Override public long getVersion() { return version; } + @Override public long getGeneration() { return generation; } + @Override public boolean isDeleted() { return false; } + @Override public Map getUserData() { return userData; } @@ -964,6 +1010,7 @@ } } + @Override public boolean next() throws IOException { for (int i=0; i> threadsAndFields, SegmentWriteState state) throws IOException { Map oneThreadsAndFields = new HashMap(); @@ -78,6 +80,7 @@ two.flush(twoThreadsAndFields, state); } + @Override public void closeDocStore(SegmentWriteState state) throws IOException { try { one.closeDocStore(state); @@ -86,6 +89,7 @@ } } + @Override public void abort() { try { one.abort(); @@ -94,12 +98,14 @@ } } + @Override public boolean freeRAM() { boolean any = one.freeRAM(); any |= two.freeRAM(); return any; } + @Override public DocFieldConsumerPerThread addThread(DocFieldProcessorPerThread docFieldProcessorPerThread) throws IOException { return new DocFieldConsumersPerThread(docFieldProcessorPerThread, this, one.addThread(docFieldProcessorPerThread), two.addThread(docFieldProcessorPerThread)); } @@ -133,10 +139,12 @@ DocumentsWriter.DocWriter one; DocumentsWriter.DocWriter two; + @Override public long sizeInBytes() { return one.sizeInBytes() + two.sizeInBytes(); } + @Override public void finish() throws IOException { try { try { @@ -149,6 +157,7 @@ } } + @Override public void abort() { try { try { Index: src/java/org/apache/lucene/index/DocFieldConsumersPerField.java =================================================================== --- src/java/org/apache/lucene/index/DocFieldConsumersPerField.java (revision 830378) +++ src/java/org/apache/lucene/index/DocFieldConsumersPerField.java (working copy) @@ -32,11 +32,13 @@ this.two = two; } + @Override public void processFields(Fieldable[] fields, int count) throws IOException { one.processFields(fields, count); two.processFields(fields, count); } + @Override public void abort() { try { one.abort(); Index: src/java/org/apache/lucene/index/DocFieldConsumersPerThread.java =================================================================== --- src/java/org/apache/lucene/index/DocFieldConsumersPerThread.java (revision 830378) +++ src/java/org/apache/lucene/index/DocFieldConsumersPerThread.java (working copy) @@ -34,11 +34,13 @@ docState = docFieldProcessorPerThread.docState; } + @Override public void startDocument() throws IOException { one.startDocument(); two.startDocument(); } + @Override public void abort() { try { one.abort(); @@ -47,6 +49,7 @@ } } + @Override public DocumentsWriter.DocWriter finishDocument() throws IOException { final DocumentsWriter.DocWriter oneDoc = one.finishDocument(); final DocumentsWriter.DocWriter twoDoc = two.finishDocument(); @@ -65,6 +68,7 @@ } } + @Override public DocFieldConsumerPerField addField(FieldInfo fi) { return new DocFieldConsumersPerField(this, one.addField(fi), two.addField(fi)); } Index: src/java/org/apache/lucene/index/DocFieldProcessor.java =================================================================== --- src/java/org/apache/lucene/index/DocFieldProcessor.java (revision 830378) +++ src/java/org/apache/lucene/index/DocFieldProcessor.java (working copy) @@ -45,11 +45,13 @@ fieldsWriter = new StoredFieldsWriter(docWriter, fieldInfos); } + @Override public void closeDocStore(SegmentWriteState state) throws IOException { consumer.closeDocStore(state); fieldsWriter.closeDocStore(state); } + @Override public void flush(Collection threads, SegmentWriteState state) throws IOException { Map> childThreadsAndFields = new HashMap>(); @@ -70,15 +72,18 @@ state.flushedFiles.add(fileName); } + @Override public void abort() { fieldsWriter.abort(); consumer.abort(); } + @Override public boolean freeRAM() { return consumer.freeRAM(); } + @Override public DocConsumerPerThread addThread(DocumentsWriterThreadState threadState) throws IOException { return new DocFieldProcessorPerThread(threadState, this); } Index: src/java/org/apache/lucene/index/DocFieldProcessorPerThread.java =================================================================== --- src/java/org/apache/lucene/index/DocFieldProcessorPerThread.java (revision 830378) +++ src/java/org/apache/lucene/index/DocFieldProcessorPerThread.java (working copy) @@ -63,6 +63,7 @@ fieldsWriter = docFieldProcessor.fieldsWriter.addThread(docState); } + @Override public void abort() { for(int i=0;i> threadsAndFields, SegmentWriteState state) throws IOException { Map> childThreadsAndFields = new HashMap>(); @@ -71,20 +73,24 @@ endConsumer.flush(endChildThreadsAndFields, state); } + @Override public void closeDocStore(SegmentWriteState state) throws IOException { consumer.closeDocStore(state); endConsumer.closeDocStore(state); } + @Override void abort() { consumer.abort(); endConsumer.abort(); } + @Override public boolean freeRAM() { return consumer.freeRAM(); } + @Override public DocFieldConsumerPerThread addThread(DocFieldProcessorPerThread docFieldProcessorPerThread) { return new DocInverterPerThread(docFieldProcessorPerThread, this); } Index: src/java/org/apache/lucene/index/DocInverterPerField.java =================================================================== --- src/java/org/apache/lucene/index/DocInverterPerField.java (revision 830378) +++ src/java/org/apache/lucene/index/DocInverterPerField.java (working copy) @@ -51,11 +51,13 @@ this.endConsumer = perThread.endConsumer.addField(this, fieldInfo); } + @Override void abort() { consumer.abort(); endConsumer.abort(); } + @Override public void processFields(final Fieldable[] fields, final int count) throws IOException { Index: src/java/org/apache/lucene/index/DocInverterPerThread.java =================================================================== --- src/java/org/apache/lucene/index/DocInverterPerThread.java (revision 830378) +++ src/java/org/apache/lucene/index/DocInverterPerThread.java (working copy) @@ -49,6 +49,7 @@ } // this is a dummy, to not throw an UOE because this class does not implement any iteration method + @Override public boolean incrementToken() { throw new UnsupportedOperationException(); } @@ -68,11 +69,13 @@ endConsumer = docInverter.endConsumer.addThread(this); } + @Override public void startDocument() throws IOException { consumer.startDocument(); endConsumer.startDocument(); } + @Override public DocumentsWriter.DocWriter finishDocument() throws IOException { // TODO: allow endConsumer.finishDocument to also return // a DocWriter @@ -80,6 +83,7 @@ return consumer.finishDocument(); } + @Override void abort() { try { consumer.abort(); @@ -88,6 +92,7 @@ } } + @Override public DocFieldConsumerPerField addField(FieldInfo fi) { return new DocInverterPerField(this, fi); } Index: src/java/org/apache/lucene/index/DocumentsWriter.java =================================================================== --- src/java/org/apache/lucene/index/DocumentsWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/DocumentsWriter.java (working copy) @@ -181,6 +181,7 @@ static final IndexingChain DefaultIndexingChain = new IndexingChain() { + @Override DocConsumer getChain(DocumentsWriter documentsWriter) { /* This is the current indexing chain: @@ -1115,10 +1116,13 @@ } private static class SkipDocWriter extends DocWriter { + @Override void finish() { } + @Override void abort() { } + @Override long sizeInBytes() { return 0; } @@ -1194,6 +1198,7 @@ ArrayList freeByteBlocks = new ArrayList(); /* Allocate another byte[] from the shared pool */ + @Override byte[] getByteBlock(boolean trackAllocations) { synchronized(DocumentsWriter.this) { final int size = freeByteBlocks.size(); @@ -1217,6 +1222,7 @@ } /* Return byte[]'s to the pool */ + @Override void recycleByteBlocks(byte[][] blocks, int start, int end) { synchronized(DocumentsWriter.this) { for(int i=start;i(comparator); currentField = field; Index: src/java/org/apache/lucene/index/FieldsReader.java =================================================================== --- src/java/org/apache/lucene/index/FieldsReader.java (revision 830378) +++ src/java/org/apache/lucene/index/FieldsReader.java (working copy) @@ -70,6 +70,7 @@ * job not to close the original FieldsReader until all * clones are called (eg, currently SegmentReader manages * this logic). */ + @Override public Object clone() { ensureOpen(); return new FieldsReader(fieldInfos, numTotalDocs, size, format, formatSize, docStoreOffset, cloneableFieldsStream, cloneableIndexStream); @@ -516,6 +517,7 @@ this.toRead = toRead; } + @Override public byte[] getBinaryValue(byte[] result) { ensureOpen(); Index: src/java/org/apache/lucene/index/FilterIndexReader.java =================================================================== --- src/java/org/apache/lucene/index/FilterIndexReader.java (revision 830378) +++ src/java/org/apache/lucene/index/FilterIndexReader.java (working copy) @@ -85,9 +85,13 @@ public FilterTermEnum(TermEnum in) { this.in = in; } + @Override public boolean next() throws IOException { return in.next(); } + @Override public Term term() { return in.term(); } + @Override public int docFreq() { return in.docFreq(); } + @Override public void close() throws IOException { in.close(); } } @@ -105,16 +109,19 @@ this.in = in; } + @Override public Directory directory() { return in.directory(); } + @Override public TermFreqVector[] getTermFreqVectors(int docNumber) throws IOException { ensureOpen(); return in.getTermFreqVectors(docNumber); } + @Override public TermFreqVector getTermFreqVector(int docNumber, String field) throws IOException { ensureOpen(); @@ -122,120 +129,146 @@ } + @Override public void getTermFreqVector(int docNumber, String field, TermVectorMapper mapper) throws IOException { ensureOpen(); in.getTermFreqVector(docNumber, field, mapper); } + @Override public void getTermFreqVector(int docNumber, TermVectorMapper mapper) throws IOException { ensureOpen(); in.getTermFreqVector(docNumber, mapper); } + @Override public int numDocs() { // Don't call ensureOpen() here (it could affect performance) return in.numDocs(); } + @Override public int maxDoc() { // Don't call ensureOpen() here (it could affect performance) return in.maxDoc(); } + @Override public Document document(int n, FieldSelector fieldSelector) throws CorruptIndexException, IOException { ensureOpen(); return in.document(n, fieldSelector); } + @Override public boolean isDeleted(int n) { // Don't call ensureOpen() here (it could affect performance) return in.isDeleted(n); } + @Override public boolean hasDeletions() { // Don't call ensureOpen() here (it could affect performance) return in.hasDeletions(); } + @Override protected void doUndeleteAll() throws CorruptIndexException, IOException {in.undeleteAll();} + @Override public boolean hasNorms(String field) throws IOException { ensureOpen(); return in.hasNorms(field); } + @Override public byte[] norms(String f) throws IOException { ensureOpen(); return in.norms(f); } + @Override public void norms(String f, byte[] bytes, int offset) throws IOException { ensureOpen(); in.norms(f, bytes, offset); } + @Override protected void doSetNorm(int d, String f, byte b) throws CorruptIndexException, IOException { in.setNorm(d, f, b); } + @Override public TermEnum terms() throws IOException { ensureOpen(); return in.terms(); } + @Override public TermEnum terms(Term t) throws IOException { ensureOpen(); return in.terms(t); } + @Override public int docFreq(Term t) throws IOException { ensureOpen(); return in.docFreq(t); } + @Override public TermDocs termDocs() throws IOException { ensureOpen(); return in.termDocs(); } + @Override public TermDocs termDocs(Term term) throws IOException { ensureOpen(); return in.termDocs(term); } + @Override public TermPositions termPositions() throws IOException { ensureOpen(); return in.termPositions(); } + @Override protected void doDelete(int n) throws CorruptIndexException, IOException { in.deleteDocument(n); } + @Override protected void doCommit(Map commitUserData) throws IOException { in.commit(commitUserData); } + @Override protected void doClose() throws IOException { in.close(); } + @Override public Collection getFieldNames(IndexReader.FieldOption fieldNames) { ensureOpen(); return in.getFieldNames(fieldNames); } + @Override public long getVersion() { ensureOpen(); return in.getVersion(); } + @Override public boolean isCurrent() throws CorruptIndexException, IOException { ensureOpen(); return in.isCurrent(); } + @Override public boolean isOptimized() { ensureOpen(); return in.isOptimized(); } + @Override public IndexReader[] getSequentialSubReaders() { return in.getSequentialSubReaders(); } Index: src/java/org/apache/lucene/index/FormatPostingsDocsWriter.java =================================================================== --- src/java/org/apache/lucene/index/FormatPostingsDocsWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/FormatPostingsDocsWriter.java (working copy) @@ -67,6 +67,7 @@ /** Adds a new doc in this term. If this returns null * then we just skip consuming positions/payloads. */ + @Override FormatPostingsPositionsConsumer addDoc(int docID, int termDocFreq) throws IOException { final int delta = docID - lastDocID; @@ -99,6 +100,7 @@ final UnicodeUtil.UTF8Result utf8 = new UnicodeUtil.UTF8Result(); /** Called when we are done adding docs to this term */ + @Override void finish() throws IOException { long skipPointer = skipListWriter.writeSkip(out); Index: src/java/org/apache/lucene/index/FormatPostingsFieldsWriter.java =================================================================== --- src/java/org/apache/lucene/index/FormatPostingsFieldsWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/FormatPostingsFieldsWriter.java (working copy) @@ -60,12 +60,14 @@ } /** Add a new field */ + @Override FormatPostingsTermsConsumer addField(FieldInfo field) { termsWriter.setField(field); return termsWriter; } /** Called when we are done adding everything. */ + @Override void finish() throws IOException { termsOut.close(); termsWriter.close(); Index: src/java/org/apache/lucene/index/FormatPostingsPositionsWriter.java =================================================================== --- src/java/org/apache/lucene/index/FormatPostingsPositionsWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/FormatPostingsPositionsWriter.java (working copy) @@ -49,6 +49,7 @@ int lastPosition; /** Add a new position & payload */ + @Override void addPosition(int position, byte[] payload, int payloadOffset, int payloadLength) throws IOException { assert !omitTermFreqAndPositions: "omitTermFreqAndPositions is true"; assert out != null; @@ -75,6 +76,7 @@ } /** Called when we are done adding positions & payloads */ + @Override void finish() { lastPosition = 0; lastPayloadLength = -1; Index: src/java/org/apache/lucene/index/FormatPostingsTermsWriter.java =================================================================== --- src/java/org/apache/lucene/index/FormatPostingsTermsWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/FormatPostingsTermsWriter.java (working copy) @@ -45,6 +45,7 @@ long proxStart; /** Adds a new term in this field */ + @Override FormatPostingsDocsConsumer addTerm(char[] text, int start) { currentTerm = text; currentTermStart = start; @@ -62,6 +63,7 @@ } /** Called when we are done adding terms to this field */ + @Override void finish() { } Index: src/java/org/apache/lucene/index/FreqProxTermsWriter.java =================================================================== --- src/java/org/apache/lucene/index/FreqProxTermsWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/FreqProxTermsWriter.java (working copy) @@ -31,10 +31,12 @@ @SuppressWarnings("unchecked") final class FreqProxTermsWriter extends TermsHashConsumer { + @Override public TermsHashConsumerPerThread addThread(TermsHashPerThread perThread) { return new FreqProxTermsWriterPerThread(perThread); } + @Override void createPostings(RawPostingList[] postings, int start, int count) { final int end = start + count; for(int i=start;i> threadsAndFields, final SegmentWriteState state) throws IOException { // Gather all FieldData's that have postings, across all @@ -288,6 +293,7 @@ int lastPosition; // Last position where this term occurred } + @Override int bytesPerPosting() { return RawPostingList.BYTES_SIZE + 4 * DocumentsWriter.INT_NUM_BYTE; } Index: src/java/org/apache/lucene/index/FreqProxTermsWriterPerField.java =================================================================== --- src/java/org/apache/lucene/index/FreqProxTermsWriterPerField.java (revision 830378) +++ src/java/org/apache/lucene/index/FreqProxTermsWriterPerField.java (working copy) @@ -43,6 +43,7 @@ omitTermFreqAndPositions = fieldInfo.omitTermFreqAndPositions; } + @Override int getStreamCount() { if (fieldInfo.omitTermFreqAndPositions) return 1; @@ -50,10 +51,12 @@ return 2; } + @Override void finish() {} boolean hasPayloads; + @Override void skippingLongTerm() throws IOException {} public int compareTo(FreqProxTermsWriterPerField other) { @@ -67,6 +70,7 @@ payloadAttribute = null; } + @Override boolean start(Fieldable[] fields, int count) { for(int i=0;i getFileNames() throws IOException { return files; } + @Override public Directory getDirectory() { return directory; } + @Override public long getVersion() { return version; } + @Override public long getGeneration() { return generation; } + @Override public Map getUserData() { return userData; } @@ -617,6 +624,7 @@ * Called only be the deletion policy, to remove this * commit point from the index. */ + @Override public void delete() { if (!deleted) { deleted = true; @@ -624,6 +632,7 @@ } } + @Override public boolean isDeleted() { return deleted; } Index: src/java/org/apache/lucene/index/IndexReader.java =================================================================== --- src/java/org/apache/lucene/index/IndexReader.java (revision 830378) +++ src/java/org/apache/lucene/index/IndexReader.java (working copy) @@ -88,6 +88,7 @@ private FieldOption(String option) { this.option = option; } + @Override public String toString() { return this.option; } @@ -395,6 +396,7 @@ * @throws CorruptIndexException if the index is corrupt * @throws IOException if there is a low-level IO error */ + @Override public synchronized Object clone() { throw new UnsupportedOperationException("This reader does not implement clone()"); } @@ -430,6 +432,7 @@ */ public static long lastModified(final Directory directory2) throws CorruptIndexException, IOException { return ((Long) new SegmentInfos.FindSegmentsFile(directory2) { + @Override public Object doBody(String segmentFileName) throws IOException { return Long.valueOf(directory2.fileModified(segmentFileName)); } Index: src/java/org/apache/lucene/index/IndexWriter.java =================================================================== --- src/java/org/apache/lucene/index/IndexWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/IndexWriter.java (working copy) @@ -4771,6 +4771,7 @@ return limit; } + @Override public String toString() { return name + ":" + limit; Index: src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java =================================================================== --- src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java (revision 830378) +++ src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java (working copy) @@ -35,6 +35,7 @@ minMergeSize = (long) (DEFAULT_MIN_MERGE_MB*1024*1024); maxMergeSize = (long) (DEFAULT_MAX_MERGE_MB*1024*1024); } + @Override protected long size(SegmentInfo info) throws IOException { return sizeBytes(info); } Index: src/java/org/apache/lucene/index/LogDocMergePolicy.java =================================================================== --- src/java/org/apache/lucene/index/LogDocMergePolicy.java (revision 830378) +++ src/java/org/apache/lucene/index/LogDocMergePolicy.java (working copy) @@ -36,6 +36,7 @@ // it to Long.MAX_VALUE to disable it maxMergeSize = Long.MAX_VALUE; } + @Override protected long size(SegmentInfo info) throws IOException { return sizeDocs(info); } Index: src/java/org/apache/lucene/index/LogMergePolicy.java =================================================================== --- src/java/org/apache/lucene/index/LogMergePolicy.java (revision 830378) +++ src/java/org/apache/lucene/index/LogMergePolicy.java (working copy) @@ -102,6 +102,7 @@ } // Javadoc inherited + @Override public boolean useCompoundFile(SegmentInfos infos, SegmentInfo info) { return useCompoundFile; } @@ -120,6 +121,7 @@ } // Javadoc inherited + @Override public boolean useCompoundDocStore(SegmentInfos infos) { return useCompoundDocStore; } @@ -151,6 +153,7 @@ return calibrateSizeByDeletes; } + @Override public void close() {} abstract protected long size(SegmentInfo info) throws IOException; @@ -211,6 +214,7 @@ * setting is true. This method returns multiple merges * (mergeFactor at a time) so the {@link MergeScheduler} * in use may make use of concurrency. */ + @Override public MergeSpecification findMergesForOptimize(SegmentInfos infos, int maxNumSegments, Set segmentsToOptimize) throws IOException { MergeSpecification spec; @@ -295,6 +299,7 @@ * index. We simply merge adjacent segments that have * deletes, up to mergeFactor at a time. */ + @Override public MergeSpecification findMergesToExpungeDeletes(SegmentInfos segmentInfos) throws CorruptIndexException, IOException { final int numSegments = segmentInfos.size(); @@ -347,6 +352,7 @@ * multiple levels have too many segments, this method * will return multiple merges, allowing the {@link * MergeScheduler} to use concurrency. */ + @Override public MergeSpecification findMerges(SegmentInfos infos) throws IOException { final int numSegments = infos.size(); Index: src/java/org/apache/lucene/index/MultiLevelSkipListReader.java =================================================================== --- src/java/org/apache/lucene/index/MultiLevelSkipListReader.java (revision 830378) +++ src/java/org/apache/lucene/index/MultiLevelSkipListReader.java (working copy) @@ -244,27 +244,33 @@ input.readBytes(data, 0, length); } + @Override public void close() throws IOException { data = null; } + @Override public long getFilePointer() { return pointer + pos; } + @Override public long length() { return data.length; } + @Override public byte readByte() throws IOException { return data[pos++]; } + @Override public void readBytes(byte[] b, int offset, int len) throws IOException { System.arraycopy(data, pos, b, offset, len); pos += len; } + @Override public void seek(long pos) throws IOException { this.pos = (int) (pos - pointer); } Index: src/java/org/apache/lucene/index/MultipleTermPositions.java =================================================================== --- src/java/org/apache/lucene/index/MultipleTermPositions.java (revision 830378) +++ src/java/org/apache/lucene/index/MultipleTermPositions.java (working copy) @@ -46,6 +46,7 @@ return top(); } + @Override public final boolean lessThan(TermPositions a, TermPositions b) { return a.doc() < b.doc(); } Index: src/java/org/apache/lucene/index/MultiReader.java =================================================================== --- src/java/org/apache/lucene/index/MultiReader.java (revision 830378) +++ src/java/org/apache/lucene/index/MultiReader.java (working copy) @@ -106,6 +106,7 @@ * @throws CorruptIndexException if the index is corrupt * @throws IOException if there is a low-level IO error */ + @Override public synchronized IndexReader reopen() throws CorruptIndexException, IOException { return doReopen(false); } @@ -119,6 +120,7 @@ * readers is increased to ensure that the subreaders remain open * until the last referring reader is closed. */ + @Override public synchronized Object clone() { try { return doReopen(true); @@ -185,12 +187,14 @@ } } + @Override public TermFreqVector[] getTermFreqVectors(int n) throws IOException { ensureOpen(); int i = readerIndex(n); // find segment num return subReaders[i].getTermFreqVectors(n - starts[i]); // dispatch to segment } + @Override public TermFreqVector getTermFreqVector(int n, String field) throws IOException { ensureOpen(); @@ -199,22 +203,26 @@ } + @Override public void getTermFreqVector(int docNumber, String field, TermVectorMapper mapper) throws IOException { ensureOpen(); int i = readerIndex(docNumber); // find segment num subReaders[i].getTermFreqVector(docNumber - starts[i], field, mapper); } + @Override public void getTermFreqVector(int docNumber, TermVectorMapper mapper) throws IOException { ensureOpen(); int i = readerIndex(docNumber); // find segment num subReaders[i].getTermFreqVector(docNumber - starts[i], mapper); } + @Override public boolean isOptimized() { return false; } + @Override public synchronized int numDocs() { // Don't call ensureOpen() here (it could affect performance) if (numDocs == -1) { // check cache @@ -226,29 +234,34 @@ return numDocs; } + @Override public int maxDoc() { // Don't call ensureOpen() here (it could affect performance) return maxDoc; } // inherit javadoc + @Override public Document document(int n, FieldSelector fieldSelector) throws CorruptIndexException, IOException { ensureOpen(); int i = readerIndex(n); // find segment num return subReaders[i].document(n - starts[i], fieldSelector); // dispatch to segment reader } + @Override public boolean isDeleted(int n) { // Don't call ensureOpen() here (it could affect performance) int i = readerIndex(n); // find segment num return subReaders[i].isDeleted(n - starts[i]); // dispatch to segment reader } + @Override public boolean hasDeletions() { // Don't call ensureOpen() here (it could affect performance) return hasDeletions; } + @Override protected void doDelete(int n) throws CorruptIndexException, IOException { numDocs = -1; // invalidate cache int i = readerIndex(n); // find segment num @@ -256,6 +269,7 @@ hasDeletions = true; } + @Override protected void doUndeleteAll() throws CorruptIndexException, IOException { for (int i = 0; i < subReaders.length; i++) subReaders[i].undeleteAll(); @@ -268,6 +282,7 @@ return DirectoryReader.readerIndex(n, this.starts, this.subReaders.length); } + @Override public boolean hasNorms(String field) throws IOException { ensureOpen(); for (int i = 0; i < subReaders.length; i++) { @@ -282,6 +297,7 @@ return ones; } + @Override public synchronized byte[] norms(String field) throws IOException { ensureOpen(); byte[] bytes = normsCache.get(field); @@ -297,6 +313,7 @@ return bytes; } + @Override public synchronized void norms(String field, byte[] result, int offset) throws IOException { ensureOpen(); @@ -315,6 +332,7 @@ } } + @Override protected void doSetNorm(int n, String field, byte value) throws CorruptIndexException, IOException { synchronized (normsCache) { @@ -324,16 +342,19 @@ subReaders[i].setNorm(n-starts[i], field, value); // dispatch } + @Override public TermEnum terms() throws IOException { ensureOpen(); return new MultiTermEnum(this, subReaders, starts, null); } + @Override public TermEnum terms(Term term) throws IOException { ensureOpen(); return new MultiTermEnum(this, subReaders, starts, term); } + @Override public int docFreq(Term t) throws IOException { ensureOpen(); int total = 0; // sum freqs in segments @@ -342,21 +363,25 @@ return total; } + @Override public TermDocs termDocs() throws IOException { ensureOpen(); return new MultiTermDocs(this, subReaders, starts); } + @Override public TermPositions termPositions() throws IOException { ensureOpen(); return new MultiTermPositions(this, subReaders, starts); } + @Override protected void doCommit(Map commitUserData) throws IOException { for (int i = 0; i < subReaders.length; i++) subReaders[i].commit(commitUserData); } + @Override protected synchronized void doClose() throws IOException { for (int i = 0; i < subReaders.length; i++) { if (decrefOnClose[i]) { @@ -367,6 +392,7 @@ } } + @Override public Collection getFieldNames (IndexReader.FieldOption fieldNames) { ensureOpen(); return DirectoryReader.getFieldNames(fieldNames, this.subReaders); @@ -375,6 +401,7 @@ /** * Checks recursively if all subreaders are up to date. */ + @Override public boolean isCurrent() throws CorruptIndexException, IOException { for (int i = 0; i < subReaders.length; i++) { if (!subReaders[i].isCurrent()) { @@ -389,10 +416,12 @@ /** Not implemented. * @throws UnsupportedOperationException */ + @Override public long getVersion() { throw new UnsupportedOperationException("MultiReader does not support this method."); } + @Override public IndexReader[] getSequentialSubReaders() { return subReaders; } Index: src/java/org/apache/lucene/index/NormsWriter.java =================================================================== --- src/java/org/apache/lucene/index/NormsWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/NormsWriter.java (working copy) @@ -41,21 +41,25 @@ private static final byte defaultNorm = Similarity.encodeNorm(1.0f); private FieldInfos fieldInfos; + @Override public InvertedDocEndConsumerPerThread addThread(DocInverterPerThread docInverterPerThread) { return new NormsWriterPerThread(docInverterPerThread, this); } + @Override public void abort() {} // We only write the _X.nrm file at flush void files(Collection files) {} + @Override void setFieldInfos(FieldInfos fieldInfos) { this.fieldInfos = fieldInfos; } /** Produce _X.nrm if any document had a field with norms * not disabled */ + @Override public void flush(Map> threadsAndFields, SegmentWriteState state) throws IOException { final Map byField = new HashMap(); @@ -173,5 +177,6 @@ } } + @Override void closeDocStore(SegmentWriteState state) {} } Index: src/java/org/apache/lucene/index/NormsWriterPerField.java =================================================================== --- src/java/org/apache/lucene/index/NormsWriterPerField.java (revision 830378) +++ src/java/org/apache/lucene/index/NormsWriterPerField.java (working copy) @@ -52,6 +52,7 @@ fieldState = docInverterPerField.fieldState; } + @Override void abort() { upto = 0; } @@ -60,6 +61,7 @@ return fieldInfo.name.compareTo(other.fieldInfo.name); } + @Override void finish() { assert docIDs.length == norms.length; if (fieldInfo.isIndexed && !fieldInfo.omitNorms) { Index: src/java/org/apache/lucene/index/NormsWriterPerThread.java =================================================================== --- src/java/org/apache/lucene/index/NormsWriterPerThread.java (revision 830378) +++ src/java/org/apache/lucene/index/NormsWriterPerThread.java (working copy) @@ -26,13 +26,17 @@ docState = docInverterPerThread.docState; } + @Override InvertedDocEndConsumerPerField addField(DocInverterPerField docInverterPerField, final FieldInfo fieldInfo) { return new NormsWriterPerField(docInverterPerField, this, fieldInfo); } + @Override void abort() {} + @Override void startDocument() {} + @Override void finishDocument() {} boolean freeRAM() { Index: src/java/org/apache/lucene/index/ParallelReader.java =================================================================== --- src/java/org/apache/lucene/index/ParallelReader.java (revision 830378) +++ src/java/org/apache/lucene/index/ParallelReader.java (working copy) @@ -121,6 +121,7 @@ decrefOnClose.add(Boolean.valueOf(incRefReaders)); } + @Override public synchronized Object clone() { try { return doReopen(true); @@ -148,6 +149,7 @@ * @throws CorruptIndexException if the index is corrupt * @throws IOException if there is a low-level IO error */ + @Override public synchronized IndexReader reopen() throws CorruptIndexException, IOException { return doReopen(false); } @@ -217,22 +219,26 @@ } + @Override public int numDocs() { // Don't call ensureOpen() here (it could affect performance) return numDocs; } + @Override public int maxDoc() { // Don't call ensureOpen() here (it could affect performance) return maxDoc; } + @Override public boolean hasDeletions() { // Don't call ensureOpen() here (it could affect performance) return hasDeletions; } // check first reader + @Override public boolean isDeleted(int n) { // Don't call ensureOpen() here (it could affect performance) if (readers.size() > 0) @@ -241,6 +247,7 @@ } // delete in all readers + @Override protected void doDelete(int n) throws CorruptIndexException, IOException { for (final IndexReader reader : readers) { reader.deleteDocument(n); @@ -249,6 +256,7 @@ } // undeleteAll in all readers + @Override protected void doUndeleteAll() throws CorruptIndexException, IOException { for (final IndexReader reader : readers) { reader.undeleteAll(); @@ -257,6 +265,7 @@ } // append fields from storedFieldReaders + @Override public Document document(int n, FieldSelector fieldSelector) throws CorruptIndexException, IOException { ensureOpen(); Document result = new Document(); @@ -282,6 +291,7 @@ } // get all vectors + @Override public TermFreqVector[] getTermFreqVectors(int n) throws IOException { ensureOpen(); ArrayList results = new ArrayList(); @@ -296,6 +306,7 @@ return results.toArray(new TermFreqVector[results.size()]); } + @Override public TermFreqVector getTermFreqVector(int n, String field) throws IOException { ensureOpen(); @@ -304,6 +315,7 @@ } + @Override public void getTermFreqVector(int docNumber, String field, TermVectorMapper mapper) throws IOException { ensureOpen(); IndexReader reader = fieldToReader.get(field); @@ -312,6 +324,7 @@ } } + @Override public void getTermFreqVector(int docNumber, TermVectorMapper mapper) throws IOException { ensureOpen(); @@ -324,18 +337,21 @@ } + @Override public boolean hasNorms(String field) throws IOException { ensureOpen(); IndexReader reader = fieldToReader.get(field); return reader==null ? false : reader.hasNorms(field); } + @Override public byte[] norms(String field) throws IOException { ensureOpen(); IndexReader reader = fieldToReader.get(field); return reader==null ? null : reader.norms(field); } + @Override public void norms(String field, byte[] result, int offset) throws IOException { ensureOpen(); @@ -344,6 +360,7 @@ reader.norms(field, result, offset); } + @Override protected void doSetNorm(int n, String field, byte value) throws CorruptIndexException, IOException { IndexReader reader = fieldToReader.get(field); @@ -351,37 +368,44 @@ reader.doSetNorm(n, field, value); } + @Override public TermEnum terms() throws IOException { ensureOpen(); return new ParallelTermEnum(); } + @Override public TermEnum terms(Term term) throws IOException { ensureOpen(); return new ParallelTermEnum(term); } + @Override public int docFreq(Term term) throws IOException { ensureOpen(); IndexReader reader = fieldToReader.get(term.field()); return reader==null ? 0 : reader.docFreq(term); } + @Override public TermDocs termDocs(Term term) throws IOException { ensureOpen(); return new ParallelTermDocs(term); } + @Override public TermDocs termDocs() throws IOException { ensureOpen(); return new ParallelTermDocs(); } + @Override public TermPositions termPositions(Term term) throws IOException { ensureOpen(); return new ParallelTermPositions(term); } + @Override public TermPositions termPositions() throws IOException { ensureOpen(); return new ParallelTermPositions(); @@ -390,6 +414,7 @@ /** * Checks recursively if all subreaders are up to date. */ + @Override public boolean isCurrent() throws CorruptIndexException, IOException { for (final IndexReader reader : readers) { if (!reader.isCurrent()) { @@ -404,6 +429,7 @@ /** * Checks recursively if all subindexes are optimized */ + @Override public boolean isOptimized() { for (final IndexReader reader : readers) { if (!reader.isOptimized()) { @@ -419,6 +445,7 @@ /** Not implemented. * @throws UnsupportedOperationException */ + @Override public long getVersion() { throw new UnsupportedOperationException("ParallelReader does not support this method."); } @@ -428,11 +455,13 @@ return readers.toArray(new IndexReader[readers.size()]); } + @Override protected void doCommit(Map commitUserData) throws IOException { for (final IndexReader reader : readers) reader.commit(commitUserData); } + @Override protected synchronized void doClose() throws IOException { for (int i = 0; i < readers.size(); i++) { if (decrefOnClose.get(i).booleanValue()) { @@ -443,6 +472,7 @@ } } + @Override public Collection getFieldNames (IndexReader.FieldOption fieldNames) { ensureOpen(); Set fieldSet = new HashSet(); @@ -476,6 +506,7 @@ termEnum = reader.terms(term); } + @Override public boolean next() throws IOException { if (termEnum==null) return false; @@ -504,6 +535,7 @@ return false; // no more fields } + @Override public Term term() { if (termEnum==null) return null; @@ -511,6 +543,7 @@ return termEnum.term(); } + @Override public int docFreq() { if (termEnum==null) return 0; @@ -518,6 +551,7 @@ return termEnum.docFreq(); } + @Override public void close() throws IOException { if (termEnum!=null) termEnum.close(); @@ -583,6 +617,7 @@ public ParallelTermPositions() {} public ParallelTermPositions(Term term) throws IOException { seek(term); } + @Override public void seek(Term term) throws IOException { IndexReader reader = fieldToReader.get(term.field()); termDocs = reader!=null ? reader.termPositions(term) : null; Index: src/java/org/apache/lucene/index/Payload.java =================================================================== --- src/java/org/apache/lucene/index/Payload.java (revision 830378) +++ src/java/org/apache/lucene/index/Payload.java (working copy) @@ -156,6 +156,7 @@ * Clones this payload by creating a copy of the underlying * byte array. */ + @Override public Object clone() { try { // Start with a shallow copy of data @@ -176,6 +177,7 @@ } } + @Override public boolean equals(Object obj) { if (obj == this) return true; @@ -192,6 +194,7 @@ return false; } + @Override public int hashCode() { return ArrayUtil.hashCode(data, offset, offset+length); } Index: src/java/org/apache/lucene/index/PositionBasedTermVectorMapper.java =================================================================== --- src/java/org/apache/lucene/index/PositionBasedTermVectorMapper.java (revision 830378) +++ src/java/org/apache/lucene/index/PositionBasedTermVectorMapper.java (working copy) @@ -56,6 +56,7 @@ * Never ignores positions. This mapper doesn't make much sense unless there are positions * @return false */ + @Override public boolean isIgnoringPositions() { return false; } @@ -67,6 +68,7 @@ * @param offsets * @param positions */ + @Override public void map(String term, int frequency, TermVectorOffsetInfo[] offsets, int[] positions) { for (int i = 0; i < positions.length; i++) { Integer posVal = Integer.valueOf(positions[i]); @@ -86,6 +88,7 @@ * @param storeOffsets Whether offsets are available * @param storePositions Whether positions are available */ + @Override public void setExpectations(String field, int numTerms, boolean storeOffsets, boolean storePositions) { if (storePositions == false) { Index: src/java/org/apache/lucene/index/ReadOnlyDirectoryReader.java =================================================================== --- src/java/org/apache/lucene/index/ReadOnlyDirectoryReader.java (revision 830378) +++ src/java/org/apache/lucene/index/ReadOnlyDirectoryReader.java (working copy) @@ -36,6 +36,7 @@ super(writer, infos, termInfosIndexDivisor); } + @Override protected void acquireWriteLock() { ReadOnlySegmentReader.noWrite(); } Index: src/java/org/apache/lucene/index/ReadOnlySegmentReader.java =================================================================== --- src/java/org/apache/lucene/index/ReadOnlySegmentReader.java (revision 830378) +++ src/java/org/apache/lucene/index/ReadOnlySegmentReader.java (working copy) @@ -23,11 +23,13 @@ throw new UnsupportedOperationException("This IndexReader cannot make any changes to the index (it was opened with readOnly = true)"); } + @Override protected void acquireWriteLock() { noWrite(); } // Not synchronized + @Override public boolean isDeleted(int n) { return deletedDocs != null && deletedDocs.get(n); } Index: src/java/org/apache/lucene/index/ReusableStringReader.java =================================================================== --- src/java/org/apache/lucene/index/ReusableStringReader.java (revision 830378) +++ src/java/org/apache/lucene/index/ReusableStringReader.java (working copy) @@ -31,9 +31,11 @@ left = s.length(); this.upto = 0; } + @Override public int read(char[] c) { return read(c, 0, c.length); } + @Override public int read(char[] c, int off, int len) { if (left > len) { s.getChars(upto, upto+len, c, off); @@ -50,6 +52,7 @@ return r; } } + @Override public void close() {}; } Index: src/java/org/apache/lucene/index/SegmentInfo.java =================================================================== --- src/java/org/apache/lucene/index/SegmentInfo.java (revision 830378) +++ src/java/org/apache/lucene/index/SegmentInfo.java (working copy) @@ -91,6 +91,7 @@ private Map diagnostics; + @Override public String toString() { return "si: "+dir.toString()+" "+name+" docCount: "+docCount+" delCount: "+delCount+" delFileName: "+getDelFileName(); } @@ -314,6 +315,7 @@ clearFiles(); } + @Override public Object clone () { SegmentInfo si = new SegmentInfo(name, docCount, dir); si.isCompoundFile = isCompoundFile; @@ -710,6 +712,7 @@ /** We consider another SegmentInfo instance equal if it * has the same dir and same name. */ + @Override public boolean equals(Object obj) { SegmentInfo other; try { @@ -720,6 +723,7 @@ return other.dir == dir && other.name.equals(name); } + @Override public int hashCode() { return dir.hashCode() + name.hashCode(); } Index: src/java/org/apache/lucene/index/SegmentInfos.java =================================================================== --- src/java/org/apache/lucene/index/SegmentInfos.java (revision 830378) +++ src/java/org/apache/lucene/index/SegmentInfos.java (working copy) @@ -305,6 +305,7 @@ new FindSegmentsFile(directory) { + @Override protected Object doBody(String segmentFileName) throws CorruptIndexException, IOException { read(directory, segmentFileName); return null; @@ -369,6 +370,7 @@ * SegmentInfo. */ + @Override public Object clone() { SegmentInfos sis = (SegmentInfos) super.clone(); for(int i=0;i { + @Override protected FieldsReader initialValue() { return (FieldsReader) core.getFieldsReaderOrig().clone(); } @@ -301,6 +302,7 @@ static class Ref { private int refCount = 1; + @Override public String toString() { return "refcount: "+refCount; } @@ -491,6 +493,7 @@ // Returns a copy of this Norm instance that shares // IndexInput & bytes with the original one + @Override public synchronized Object clone() { assert refCount > 0 && (origNorm == null || origNorm.refCount > 0); @@ -633,6 +636,7 @@ return (BitVector)bv.clone(); } + @Override public final synchronized Object clone() { try { return clone(readOnly); // Preserve current readOnly @@ -641,6 +645,7 @@ } } + @Override public final synchronized IndexReader clone(boolean openReadOnly) throws CorruptIndexException, IOException { return reopenSegment(si, true, openReadOnly); } @@ -737,6 +742,7 @@ return clone; } + @Override protected void doCommit(Map commitUserData) throws IOException { if (hasChanges) { if (deletedDocsDirty) { // re-write deleted @@ -772,6 +778,7 @@ return fieldsReaderLocal.get(); } + @Override protected void doClose() throws IOException { termVectorsLocal.close(); fieldsReaderLocal.close(); @@ -795,6 +802,7 @@ return si.hasDeletions(); } + @Override public boolean hasDeletions() { // Don't call ensureOpen() here (it could affect performance) return deletedDocs != null; @@ -808,6 +816,7 @@ return si.hasSeparateNorms(); } + @Override protected void doDelete(int docNum) { if (deletedDocs == null) { deletedDocs = new BitVector(maxDoc()); @@ -827,6 +836,7 @@ pendingDeleteCount++; } + @Override protected void doUndeleteAll() { deletedDocsDirty = false; if (deletedDocs != null) { @@ -847,11 +857,13 @@ return new ArrayList(si.files()); } + @Override public TermEnum terms() { ensureOpen(); return core.getTermsReader().terms(); } + @Override public TermEnum terms(Term t) throws IOException { ensureOpen(); return core.getTermsReader().terms(t); @@ -861,15 +873,18 @@ return core.fieldInfos; } + @Override public Document document(int n, FieldSelector fieldSelector) throws CorruptIndexException, IOException { ensureOpen(); return getFieldsReader().doc(n, fieldSelector); } + @Override public synchronized boolean isDeleted(int n) { return (deletedDocs != null && deletedDocs.get(n)); } + @Override public TermDocs termDocs(Term term) throws IOException { if (term == null) { return new AllTermDocs(this); @@ -878,16 +893,19 @@ } } + @Override public TermDocs termDocs() throws IOException { ensureOpen(); return new SegmentTermDocs(this); } + @Override public TermPositions termPositions() throws IOException { ensureOpen(); return new SegmentTermPositions(this); } + @Override public int docFreq(Term t) throws IOException { ensureOpen(); TermInfo ti = core.getTermsReader().get(t); @@ -897,6 +915,7 @@ return 0; } + @Override public int numDocs() { // Don't call ensureOpen() here (it could affect performance) int n = maxDoc(); @@ -905,6 +924,7 @@ return n; } + @Override public int maxDoc() { // Don't call ensureOpen() here (it could affect performance) return si.docCount; @@ -913,6 +933,7 @@ /** * @see IndexReader#getFieldNames(IndexReader.FieldOption fldOption) */ + @Override public Collection getFieldNames(IndexReader.FieldOption fieldOption) { ensureOpen(); @@ -961,6 +982,7 @@ } + @Override public synchronized boolean hasNorms(String field) { ensureOpen(); return norms.containsKey(field); @@ -982,12 +1004,14 @@ } // returns fake norms if norms aren't available + @Override public synchronized byte[] norms(String field) throws IOException { ensureOpen(); byte[] bytes = getNorms(field); return bytes; } + @Override protected void doSetNorm(int doc, String field, byte value) throws IOException { Norm norm = norms.get(field); @@ -999,6 +1023,7 @@ } /** Read norms into a pre-allocated array. */ + @Override public synchronized void norms(String field, byte[] bytes, int offset) throws IOException { @@ -1121,6 +1146,7 @@ * flag set. If the flag was not set, the method returns null. * @throws IOException */ + @Override public TermFreqVector getTermFreqVector(int docNumber, String field) throws IOException { // Check if this field is invalid or has no stored term vector ensureOpen(); @@ -1136,6 +1162,7 @@ } + @Override public void getTermFreqVector(int docNumber, String field, TermVectorMapper mapper) throws IOException { ensureOpen(); FieldInfo fi = core.fieldInfos.fieldInfo(field); @@ -1152,6 +1179,7 @@ } + @Override public void getTermFreqVector(int docNumber, TermVectorMapper mapper) throws IOException { ensureOpen(); @@ -1169,6 +1197,7 @@ * If no such fields existed, the method returns null. * @throws IOException */ + @Override public TermFreqVector[] getTermFreqVectors(int docNumber) throws IOException { ensureOpen(); @@ -1218,6 +1247,7 @@ } /** Returns the directory this index resides in. */ + @Override public Directory directory() { // Don't ensureOpen here -- in certain cases, when a // cloned/reopened reader needs to commit, it may call @@ -1228,10 +1258,12 @@ // This is necessary so that cloned SegmentReaders (which // share the underlying postings data) will map to the // same entry in the FieldCache. See LUCENE-1579. + @Override public final Object getFieldCacheKey() { return core.freqStream; } + @Override public long getUniqueTermCount() { return core.getTermsReader().size(); } Index: src/java/org/apache/lucene/index/SegmentTermEnum.java =================================================================== --- src/java/org/apache/lucene/index/SegmentTermEnum.java (revision 830378) +++ src/java/org/apache/lucene/index/SegmentTermEnum.java (working copy) @@ -92,6 +92,7 @@ } } + @Override protected Object clone() { SegmentTermEnum clone = null; try { @@ -118,6 +119,7 @@ } /** Increments the enumeration to the next element. True if one exists.*/ + @Override public final boolean next() throws IOException { if (position++ >= size - 1) { prevBuffer.set(termBuffer); @@ -165,6 +167,7 @@ /** Returns the current Term in the enumeration. Initially invalid, valid after next() called for the first time.*/ + @Override public final Term term() { return termBuffer.toTerm(); } @@ -188,6 +191,7 @@ /** Returns the docFreq from the current TermInfo in the enumeration. Initially invalid, valid after next() called for the first time.*/ + @Override public final int docFreq() { return termInfo.docFreq; } @@ -205,6 +209,7 @@ } /** Closes the enumeration to further activity, freeing resources. */ + @Override public final void close() throws IOException { input.close(); } Index: src/java/org/apache/lucene/index/SegmentTermPositions.java =================================================================== --- src/java/org/apache/lucene/index/SegmentTermPositions.java (revision 830378) +++ src/java/org/apache/lucene/index/SegmentTermPositions.java (working copy) @@ -43,6 +43,7 @@ this.proxStream = null; // the proxStream will be cloned lazily when nextPosition() is called for the first time } + @Override final void seek(TermInfo ti, Term term) throws IOException { super.seek(ti, term); if (ti != null) @@ -54,6 +55,7 @@ needToLoadPayload = false; } + @Override public final void close() throws IOException { super.close(); if (proxStream != null) proxStream.close(); @@ -85,11 +87,13 @@ return delta; } + @Override protected final void skippingDoc() throws IOException { // we remember to skip a document lazily lazySkipProxCount += freq; } + @Override public final boolean next() throws IOException { // we remember to skip the remaining positions of the current // document lazily @@ -103,12 +107,14 @@ return false; } + @Override public final int read(final int[] docs, final int[] freqs) { throw new UnsupportedOperationException("TermPositions does not support processing multiple documents in one call. Use TermDocs instead."); } /** Called by super.skipTo(). */ + @Override protected void skipProx(long proxPointer, int payloadLength) throws IOException { // we save the pointer, we might have to skip there lazily lazySkipPointer = proxPointer; Index: src/java/org/apache/lucene/index/SegmentTermVector.java =================================================================== --- src/java/org/apache/lucene/index/SegmentTermVector.java (revision 830378) +++ src/java/org/apache/lucene/index/SegmentTermVector.java (working copy) @@ -39,6 +39,7 @@ return field; } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append('{'); Index: src/java/org/apache/lucene/index/SerialMergeScheduler.java =================================================================== --- src/java/org/apache/lucene/index/SerialMergeScheduler.java (revision 830378) +++ src/java/org/apache/lucene/index/SerialMergeScheduler.java (working copy) @@ -26,6 +26,7 @@ /** Just do the merges in sequence. We do this * "synchronized" so that even if the application is using * multiple threads, only one merge may run at a time. */ + @Override synchronized public void merge(IndexWriter writer) throws CorruptIndexException, IOException { @@ -37,5 +38,6 @@ } } + @Override public void close() {} } Index: src/java/org/apache/lucene/index/SnapshotDeletionPolicy.java =================================================================== --- src/java/org/apache/lucene/index/SnapshotDeletionPolicy.java (revision 830378) +++ src/java/org/apache/lucene/index/SnapshotDeletionPolicy.java (working copy) @@ -92,15 +92,19 @@ MyCommitPoint(IndexCommit cp) { this.cp = cp; } + @Override public String getSegmentsFileName() { return cp.getSegmentsFileName(); } + @Override public Collection getFileNames() throws IOException { return cp.getFileNames(); } + @Override public Directory getDirectory() { return cp.getDirectory(); } + @Override public void delete() { synchronized(SnapshotDeletionPolicy.this) { // Suppress the delete request if this commit point is @@ -109,15 +113,19 @@ cp.delete(); } } + @Override public boolean isDeleted() { return cp.isDeleted(); } + @Override public long getVersion() { return cp.getVersion(); } + @Override public long getGeneration() { return cp.getGeneration(); } + @Override public Map getUserData() throws IOException { return cp.getUserData(); } Index: src/java/org/apache/lucene/index/SortedTermVectorMapper.java =================================================================== --- src/java/org/apache/lucene/index/SortedTermVectorMapper.java (revision 830378) +++ src/java/org/apache/lucene/index/SortedTermVectorMapper.java (working copy) @@ -60,6 +60,7 @@ * @param positions Position information, may be null */ //We need to combine any previous mentions of the term + @Override public void map(String term, int frequency, TermVectorOffsetInfo[] offsets, int[] positions) { TermVectorEntry entry = termToTVE.get(term); if (entry == null) { @@ -108,6 +109,7 @@ } + @Override public void setExpectations(String field, int numTerms, boolean storeOffsets, boolean storePositions) { this.storeOffsets = storeOffsets; Index: src/java/org/apache/lucene/index/StoredFieldsWriter.java =================================================================== --- src/java/org/apache/lucene/index/StoredFieldsWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/StoredFieldsWriter.java (working copy) @@ -177,15 +177,18 @@ numStoredFields = 0; } + @Override void abort() { reset(); free(this); } + @Override public long sizeInBytes() { return fdt.sizeInBytes(); } + @Override public void finish() throws IOException { finishDocument(this); } Index: src/java/org/apache/lucene/index/TermBuffer.java =================================================================== --- src/java/org/apache/lucene/index/TermBuffer.java (revision 830378) +++ src/java/org/apache/lucene/index/TermBuffer.java (working copy) @@ -124,6 +124,7 @@ return term; } + @Override protected Object clone() { TermBuffer clone = null; try { Index: src/java/org/apache/lucene/index/TermsHash.java =================================================================== --- src/java/org/apache/lucene/index/TermsHash.java (revision 830378) +++ src/java/org/apache/lucene/index/TermsHash.java (working copy) @@ -68,6 +68,7 @@ postingsFreeChunk = (int) (DocumentsWriter.BYTE_BLOCK_SIZE / bytesPerPosting); } + @Override InvertedDocConsumerPerThread addThread(DocInverterPerThread docInverterPerThread) { return new TermsHashPerThread(docInverterPerThread, this, nextTermsHash, null); } @@ -76,11 +77,13 @@ return new TermsHashPerThread(docInverterPerThread, this, nextTermsHash, primaryPerThread); } + @Override void setFieldInfos(FieldInfos fieldInfos) { this.fieldInfos = fieldInfos; consumer.setFieldInfos(fieldInfos); } + @Override synchronized public void abort() { consumer.abort(); if (nextTermsHash != null) @@ -99,12 +102,14 @@ } } + @Override synchronized void closeDocStore(SegmentWriteState state) throws IOException { consumer.closeDocStore(state); if (nextTermsHash != null) nextTermsHash.closeDocStore(state); } + @Override synchronized void flush(Map> threadsAndFields, final SegmentWriteState state) throws IOException { Map childThreadsAndFields = new HashMap(); Map nextThreadsAndFields; @@ -152,6 +157,7 @@ nextTermsHash.flush(nextThreadsAndFields, state); } + @Override synchronized public boolean freeRAM() { if (!trackAllocations) Index: src/java/org/apache/lucene/index/TermsHashPerField.java =================================================================== --- src/java/org/apache/lucene/index/TermsHashPerField.java (revision 830378) +++ src/java/org/apache/lucene/index/TermsHashPerField.java (working copy) @@ -100,6 +100,7 @@ nextPerField.reset(); } + @Override synchronized public void abort() { reset(); if (nextPerField != null) @@ -248,6 +249,7 @@ private boolean doCall; private boolean doNextCall; + @Override void start(Fieldable f) { termAtt = fieldState.attributeSource.addAttribute(TermAttribute.class); consumer.start(f); @@ -256,6 +258,7 @@ } } + @Override boolean start(Fieldable[] fields, int count) throws IOException { doCall = consumer.start(fields, count); if (nextPerField != null) @@ -339,6 +342,7 @@ } // Primary entry point (for first TermsHash) + @Override void add() throws IOException { assert !postingsCompacted; @@ -505,6 +509,7 @@ writeByte(stream, (byte) i); } + @Override void finish() throws IOException { consumer.finish(); if (nextPerField != null) Index: src/java/org/apache/lucene/index/TermsHashPerThread.java =================================================================== --- src/java/org/apache/lucene/index/TermsHashPerThread.java (revision 830378) +++ src/java/org/apache/lucene/index/TermsHashPerThread.java (working copy) @@ -58,10 +58,12 @@ nextPerThread = null; } + @Override InvertedDocConsumerPerField addField(DocInverterPerField docInverterPerField, final FieldInfo fieldInfo) { return new TermsHashPerField(docInverterPerField, this, nextPerThread, fieldInfo); } + @Override synchronized public void abort() { reset(true); consumer.abort(); @@ -83,12 +85,14 @@ return true; } + @Override public void startDocument() throws IOException { consumer.startDocument(); if (nextPerThread != null) nextPerThread.consumer.startDocument(); } + @Override public DocumentsWriter.DocWriter finishDocument() throws IOException { final DocumentsWriter.DocWriter doc = consumer.finishDocument(); Index: src/java/org/apache/lucene/index/TermVectorEntry.java =================================================================== --- src/java/org/apache/lucene/index/TermVectorEntry.java (revision 830378) +++ src/java/org/apache/lucene/index/TermVectorEntry.java (working copy) @@ -73,6 +73,7 @@ } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; @@ -84,10 +85,12 @@ return true; } + @Override public int hashCode() { return (term != null ? term.hashCode() : 0); } + @Override public String toString() { return "TermVectorEntry{" + "field='" + field + '\'' + Index: src/java/org/apache/lucene/index/TermVectorOffsetInfo.java =================================================================== --- src/java/org/apache/lucene/index/TermVectorOffsetInfo.java (revision 830378) +++ src/java/org/apache/lucene/index/TermVectorOffsetInfo.java (working copy) @@ -70,6 +70,7 @@ * @param o The comparison Object * @return true if both {@link #getStartOffset()} and {@link #getEndOffset()} are the same for both objects. */ + @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof TermVectorOffsetInfo)) return false; @@ -82,6 +83,7 @@ return true; } + @Override public int hashCode() { int result; result = startOffset; Index: src/java/org/apache/lucene/index/TermVectorsReader.java =================================================================== --- src/java/org/apache/lucene/index/TermVectorsReader.java (revision 830378) +++ src/java/org/apache/lucene/index/TermVectorsReader.java (working copy) @@ -520,6 +520,7 @@ } } + @Override protected Object clone() throws CloneNotSupportedException { final TermVectorsReader clone = (TermVectorsReader) super.clone(); @@ -552,6 +553,7 @@ private boolean storingPositions; private String field; + @Override public void setExpectations(String field, int numTerms, boolean storeOffsets, boolean storePositions) { this.field = field; terms = new String[numTerms]; @@ -564,6 +566,7 @@ this.offsets = new TermVectorOffsetInfo[numTerms][]; } + @Override public void map(String term, int frequency, TermVectorOffsetInfo[] offsets, int[] positions) { terms[currentPosition] = term; termFreqs[currentPosition] = frequency; Index: src/java/org/apache/lucene/index/TermVectorsTermsWriter.java =================================================================== --- src/java/org/apache/lucene/index/TermVectorsTermsWriter.java (revision 830378) +++ src/java/org/apache/lucene/index/TermVectorsTermsWriter.java (working copy) @@ -41,16 +41,19 @@ this.docWriter = docWriter; } + @Override public TermsHashConsumerPerThread addThread(TermsHashPerThread termsHashPerThread) { return new TermVectorsTermsWriterPerThread(termsHashPerThread, this); } + @Override void createPostings(RawPostingList[] postings, int start, int count) { final int end = start + count; for(int i=start;i> threadsAndFields, final SegmentWriteState state) throws IOException { if (tvx != null) { @@ -77,6 +80,7 @@ } } + @Override synchronized void closeDocStore(final SegmentWriteState state) throws IOException { if (tvx != null) { // At least one doc in this run had term vectors @@ -207,6 +211,7 @@ return false; } + @Override public void abort() { if (tvx != null) { try { @@ -252,6 +257,7 @@ numVectorFields = 0; } + @Override void abort() { reset(); free(this); @@ -267,10 +273,12 @@ numVectorFields++; } + @Override public long sizeInBytes() { return tvf.sizeInBytes(); } + @Override public void finish() throws IOException { finishDocument(this); } @@ -282,6 +290,7 @@ int lastPosition; // Last position where this term occurred } + @Override int bytesPerPosting() { return RawPostingList.BYTES_SIZE + 3 * DocumentsWriter.INT_NUM_BYTE; } Index: src/java/org/apache/lucene/index/TermVectorsTermsWriterPerField.java =================================================================== --- src/java/org/apache/lucene/index/TermVectorsTermsWriterPerField.java (revision 830378) +++ src/java/org/apache/lucene/index/TermVectorsTermsWriterPerField.java (working copy) @@ -49,10 +49,12 @@ fieldState = termsHashPerField.fieldState; } + @Override int getStreamCount() { return 2; } + @Override boolean start(Fieldable[] fields, int count) { doVectors = false; doVectorPositions = false; @@ -97,6 +99,7 @@ * are enabled, to write the vectors to * RAMOutputStream, which is then quickly flushed to * * the real term vectors files in the Directory. */ + @Override void finish() throws IOException { assert docState.testPoint("TermVectorsTermsWriterPerField.finish start"); @@ -194,6 +197,7 @@ maxNumPostings = 0; } + @Override void start(Fieldable f) { if (doVectorOffsets) { offsetAttribute = fieldState.attributeSource.addAttribute(OffsetAttribute.class); @@ -202,6 +206,7 @@ } } + @Override void newTerm(RawPostingList p0) { assert docState.testPoint("TermVectorsTermsWriterPerField.newTerm start"); @@ -225,6 +230,7 @@ } } + @Override void addTerm(RawPostingList p0) { assert docState.testPoint("TermVectorsTermsWriterPerField.addTerm start"); @@ -247,5 +253,6 @@ } } + @Override void skippingLongTerm() {} } Index: src/java/org/apache/lucene/index/TermVectorsTermsWriterPerThread.java =================================================================== --- src/java/org/apache/lucene/index/TermVectorsTermsWriterPerThread.java (revision 830378) +++ src/java/org/apache/lucene/index/TermVectorsTermsWriterPerThread.java (working copy) @@ -39,6 +39,7 @@ final UnicodeUtil.UTF8Result utf8Results[] = {new UnicodeUtil.UTF8Result(), new UnicodeUtil.UTF8Result()}; + @Override public void startDocument() { assert clearLastVectorFieldName(); if (doc != null) { @@ -47,6 +48,7 @@ } } + @Override public DocumentsWriter.DocWriter finishDocument() { try { return doc; @@ -55,10 +57,12 @@ } } + @Override public TermsHashConsumerPerField addField(TermsHashPerField termsHashPerField, FieldInfo fieldInfo) { return new TermVectorsTermsWriterPerField(termsHashPerField, this, fieldInfo); } + @Override public void abort() { if (doc != null) { doc.abort(); Index: src/java/org/apache/lucene/messages/MessageImpl.java =================================================================== --- src/java/org/apache/lucene/messages/MessageImpl.java (revision 830378) +++ src/java/org/apache/lucene/messages/MessageImpl.java (working copy) @@ -57,6 +57,7 @@ return NLS.getLocalizedMessage(getKey(), locale, getArguments()); } + @Override public String toString() { Object[] args = getArguments(); String argsString = ""; Index: src/java/org/apache/lucene/search/BooleanClause.java =================================================================== --- src/java/org/apache/lucene/search/BooleanClause.java (revision 830378) +++ src/java/org/apache/lucene/search/BooleanClause.java (working copy) @@ -24,7 +24,7 @@ public static enum Occur { /** Use this operator for clauses that must appear in the matching documents. */ - MUST { public String toString() { return "+"; } }, + MUST { @Override public String toString() { return "+"; } }, /** Use this operator for clauses that should appear in the * matching documents. For a BooleanQuery with no MUST @@ -32,12 +32,12 @@ * for the BooleanQuery to match. * @see BooleanQuery#setMinimumNumberShouldMatch */ - SHOULD { public String toString() { return ""; } }, + SHOULD { @Override public String toString() { return ""; } }, /** Use this operator for clauses that must not appear in the matching documents. * Note that it is not possible to search for queries that only consist * of a MUST_NOT clause. */ - MUST_NOT { public String toString() { return "-"; } }; + MUST_NOT { @Override public String toString() { return "-"; } }; } @@ -84,6 +84,7 @@ /** Returns true if o is equal to this. */ + @Override public boolean equals(Object o) { if (o == null || !(o instanceof BooleanClause)) return false; @@ -93,11 +94,13 @@ } /** Returns a hash code value for this object.*/ + @Override public int hashCode() { return query.hashCode() ^ (Occur.MUST == occur?1:0) ^ (Occur.MUST_NOT == occur?2:0); } + @Override public String toString() { return occur.toString() + query.toString(); } Index: src/java/org/apache/lucene/search/BooleanQuery.java =================================================================== --- src/java/org/apache/lucene/search/BooleanQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/BooleanQuery.java (working copy) @@ -40,6 +40,7 @@ */ public static class TooManyClauses extends RuntimeException { public TooManyClauses() {} + @Override public String getMessage() { return "maxClauseCount is set to " + maxClauseCount; } @@ -89,10 +90,12 @@ // Implement coord disabling. // Inherit javadoc. + @Override public Similarity getSimilarity(Searcher searcher) { Similarity result = super.getSimilarity(searcher); if (disableCoord) { // disable coord as requested result = new SimilarityDelegator(result) { + @Override public float coord(int overlap, int maxOverlap) { return 1.0f; } Index: src/java/org/apache/lucene/search/CachingSpanFilter.java =================================================================== --- src/java/org/apache/lucene/search/CachingSpanFilter.java (revision 830378) +++ src/java/org/apache/lucene/search/CachingSpanFilter.java (working copy) @@ -42,6 +42,7 @@ this.filter = filter; } + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { SpanFilterResult result = getCachedResult(reader); return result != null ? result.getDocIdSet() : null; @@ -64,19 +65,23 @@ } + @Override public SpanFilterResult bitSpans(IndexReader reader) throws IOException { return getCachedResult(reader); } + @Override public String toString() { return "CachingSpanFilter("+filter+")"; } + @Override public boolean equals(Object o) { if (!(o instanceof CachingSpanFilter)) return false; return this.filter.equals(((CachingSpanFilter)o).filter); } + @Override public int hashCode() { return filter.hashCode() ^ 0x1117BF25; } Index: src/java/org/apache/lucene/search/CachingWrapperFilter.java =================================================================== --- src/java/org/apache/lucene/search/CachingWrapperFilter.java (revision 830378) +++ src/java/org/apache/lucene/search/CachingWrapperFilter.java (working copy) @@ -61,6 +61,7 @@ } } + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { if (cache == null) { cache = new WeakHashMap(); @@ -86,15 +87,18 @@ return docIdSet; } + @Override public String toString() { return "CachingWrapperFilter("+filter+")"; } + @Override public boolean equals(Object o) { if (!(o instanceof CachingWrapperFilter)) return false; return this.filter.equals(((CachingWrapperFilter)o).filter); } + @Override public int hashCode() { return filter.hashCode() ^ 0x1117BF25; } Index: src/java/org/apache/lucene/search/ComplexExplanation.java =================================================================== --- src/java/org/apache/lucene/search/ComplexExplanation.java (revision 830378) +++ src/java/org/apache/lucene/search/ComplexExplanation.java (working copy) @@ -52,11 +52,13 @@ *

* @see #getMatch */ + @Override public boolean isMatch() { Boolean m = getMatch(); return (null != m ? m.booleanValue() : super.isMatch()); } + @Override protected String getSummary() { if (null == getMatch()) return super.getSummary(); Index: src/java/org/apache/lucene/search/DefaultSimilarity.java =================================================================== --- src/java/org/apache/lucene/search/DefaultSimilarity.java (revision 830378) +++ src/java/org/apache/lucene/search/DefaultSimilarity.java (working copy) @@ -31,6 +31,7 @@ * *

WARNING: This API is new and experimental, and may suddenly * change.

*/ + @Override public float computeNorm(String field, FieldInvertState state) { final int numTerms; if (discountOverlaps) @@ -41,31 +42,37 @@ } /** Implemented as 1/sqrt(numTerms). */ + @Override public float lengthNorm(String fieldName, int numTerms) { return (float)(1.0 / Math.sqrt(numTerms)); } /** Implemented as 1/sqrt(sumOfSquaredWeights). */ + @Override public float queryNorm(float sumOfSquaredWeights) { return (float)(1.0 / Math.sqrt(sumOfSquaredWeights)); } /** Implemented as sqrt(freq). */ + @Override public float tf(float freq) { return (float)Math.sqrt(freq); } /** Implemented as 1 / (distance + 1). */ + @Override public float sloppyFreq(int distance) { return 1.0f / (distance + 1); } /** Implemented as log(numDocs/(docFreq+1)) + 1. */ + @Override public float idf(int docFreq, int numDocs) { return (float)(Math.log(numDocs/(double)(docFreq+1)) + 1.0); } /** Implemented as overlap / maxOverlap. */ + @Override public float coord(int overlap, int maxOverlap) { return overlap / (float)maxOverlap; } Index: src/java/org/apache/lucene/search/DocIdSet.java =================================================================== --- src/java/org/apache/lucene/search/DocIdSet.java (revision 830378) +++ src/java/org/apache/lucene/search/DocIdSet.java (working copy) @@ -29,8 +29,11 @@ public static final DocIdSet EMPTY_DOCIDSET = new DocIdSet() { private final DocIdSetIterator iterator = new DocIdSetIterator() { + @Override public int advance(int target) throws IOException { return NO_MORE_DOCS; } + @Override public int docID() { return NO_MORE_DOCS; } + @Override public int nextDoc() throws IOException { return NO_MORE_DOCS; } }; Index: src/java/org/apache/lucene/search/ExactPhraseScorer.java =================================================================== --- src/java/org/apache/lucene/search/ExactPhraseScorer.java (revision 830378) +++ src/java/org/apache/lucene/search/ExactPhraseScorer.java (working copy) @@ -27,6 +27,7 @@ super(weight, tps, offsets, similarity, norms); } + @Override protected final float phraseFreq() throws IOException { // sort list with pq pq.clear(); Index: src/java/org/apache/lucene/search/Explanation.java =================================================================== --- src/java/org/apache/lucene/search/Explanation.java (revision 830378) +++ src/java/org/apache/lucene/search/Explanation.java (working copy) @@ -82,6 +82,7 @@ } /** Render an explanation as text. */ + @Override public String toString() { return toString(0); } Index: src/java/org/apache/lucene/search/FieldCache.java =================================================================== --- src/java/org/apache/lucene/search/FieldCache.java (revision 830378) +++ src/java/org/apache/lucene/search/FieldCache.java (working copy) @@ -154,6 +154,7 @@ protected Object readResolve() { return DEFAULT_BYTE_PARSER; } + @Override public String toString() { return FieldCache.class.getName()+".DEFAULT_BYTE_PARSER"; } @@ -167,6 +168,7 @@ protected Object readResolve() { return DEFAULT_SHORT_PARSER; } + @Override public String toString() { return FieldCache.class.getName()+".DEFAULT_SHORT_PARSER"; } @@ -180,6 +182,7 @@ protected Object readResolve() { return DEFAULT_INT_PARSER; } + @Override public String toString() { return FieldCache.class.getName()+".DEFAULT_INT_PARSER"; } @@ -193,6 +196,7 @@ protected Object readResolve() { return DEFAULT_FLOAT_PARSER; } + @Override public String toString() { return FieldCache.class.getName()+".DEFAULT_FLOAT_PARSER"; } @@ -206,6 +210,7 @@ protected Object readResolve() { return DEFAULT_LONG_PARSER; } + @Override public String toString() { return FieldCache.class.getName()+".DEFAULT_LONG_PARSER"; } @@ -219,6 +224,7 @@ protected Object readResolve() { return DEFAULT_DOUBLE_PARSER; } + @Override public String toString() { return FieldCache.class.getName()+".DEFAULT_DOUBLE_PARSER"; } @@ -238,6 +244,7 @@ protected Object readResolve() { return NUMERIC_UTILS_INT_PARSER; } + @Override public String toString() { return FieldCache.class.getName()+".NUMERIC_UTILS_INT_PARSER"; } @@ -257,6 +264,7 @@ protected Object readResolve() { return NUMERIC_UTILS_FLOAT_PARSER; } + @Override public String toString() { return FieldCache.class.getName()+".NUMERIC_UTILS_FLOAT_PARSER"; } @@ -276,6 +284,7 @@ protected Object readResolve() { return NUMERIC_UTILS_LONG_PARSER; } + @Override public String toString() { return FieldCache.class.getName()+".NUMERIC_UTILS_LONG_PARSER"; } @@ -295,6 +304,7 @@ protected Object readResolve() { return NUMERIC_UTILS_DOUBLE_PARSER; } + @Override public String toString() { return FieldCache.class.getName()+".NUMERIC_UTILS_DOUBLE_PARSER"; } @@ -528,6 +538,7 @@ } + @Override public String toString() { StringBuilder b = new StringBuilder(); b.append("'").append(getReaderKey()).append("'=>"); Index: src/java/org/apache/lucene/search/FieldCacheImpl.java =================================================================== --- src/java/org/apache/lucene/search/FieldCacheImpl.java (revision 830378) +++ src/java/org/apache/lucene/search/FieldCacheImpl.java (working copy) @@ -107,10 +107,15 @@ // } } + @Override public Object getReaderKey() { return readerKey; } + @Override public String getFieldName() { return fieldName; } + @Override public Class getCacheType() { return cacheType; } + @Override public Object getCustom() { return custom; } + @Override public Object getValue() { return value; } } @@ -212,6 +217,7 @@ } /** Two of these are equal iff they reference the same field and type. */ + @Override public boolean equals (Object o) { if (o instanceof Entry) { Entry other = (Entry) o; @@ -227,6 +233,7 @@ } /** Composes a hashcode based on the field and type. */ + @Override public int hashCode() { return field.hashCode() ^ (custom==null ? 0 : custom.hashCode()); } @@ -247,6 +254,7 @@ ByteCache(FieldCache wrapper) { super(wrapper); } + @Override protected Object createValue(IndexReader reader, Entry entryKey) throws IOException { Entry entry = entryKey; @@ -293,6 +301,7 @@ super(wrapper); } + @Override protected Object createValue(IndexReader reader, Entry entryKey) throws IOException { Entry entry = entryKey; @@ -339,6 +348,7 @@ super(wrapper); } + @Override protected Object createValue(IndexReader reader, Entry entryKey) throws IOException { Entry entry = entryKey; @@ -396,6 +406,7 @@ super(wrapper); } + @Override protected Object createValue(IndexReader reader, Entry entryKey) throws IOException { Entry entry = entryKey; @@ -450,6 +461,7 @@ super(wrapper); } + @Override protected Object createValue(IndexReader reader, Entry entry) throws IOException { String field = entry.field; @@ -504,6 +516,7 @@ super(wrapper); } + @Override protected Object createValue(IndexReader reader, Entry entryKey) throws IOException { Entry entry = entryKey; @@ -553,6 +566,7 @@ super(wrapper); } + @Override protected Object createValue(IndexReader reader, Entry entryKey) throws IOException { String field = StringHelper.intern(entryKey.field); @@ -588,6 +602,7 @@ super(wrapper); } + @Override protected Object createValue(IndexReader reader, Entry entryKey) throws IOException { String field = StringHelper.intern(entryKey.field); Index: src/java/org/apache/lucene/search/FieldCacheRangeFilter.java =================================================================== --- src/java/org/apache/lucene/search/FieldCacheRangeFilter.java (revision 830378) +++ src/java/org/apache/lucene/search/FieldCacheRangeFilter.java (working copy) @@ -70,6 +70,7 @@ } /** This method is implemented for each data type */ + @Override public abstract DocIdSet getDocIdSet(IndexReader reader) throws IOException; /** @@ -79,6 +80,7 @@ */ public static FieldCacheRangeFilter newStringRange(String field, String lowerVal, String upperVal, boolean includeLower, boolean includeUpper) { return new FieldCacheRangeFilter(field, null, lowerVal, upperVal, includeLower, includeUpper) { + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { final FieldCache.StringIndex fcsi = FieldCache.DEFAULT.getStringIndex(reader, field); final int lowerPoint = fcsi.binarySearchLookup(lowerVal); @@ -120,6 +122,7 @@ // for this DocIdSet, we never need to use TermDocs, // because deleted docs have an order of 0 (null entry in StringIndex) return new FieldCacheDocIdSet(reader, false) { + @Override final boolean matchDoc(int doc) { return fcsi.order[doc] >= inclusiveLowerPoint && fcsi.order[doc] <= inclusiveUpperPoint; } @@ -144,6 +147,7 @@ */ public static FieldCacheRangeFilter newByteRange(String field, FieldCache.ByteParser parser, Byte lowerVal, Byte upperVal, boolean includeLower, boolean includeUpper) { return new FieldCacheRangeFilter(field, parser, lowerVal, upperVal, includeLower, includeUpper) { + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { final byte inclusiveLowerPoint, inclusiveUpperPoint; if (lowerVal != null) { @@ -169,6 +173,7 @@ final byte[] values = FieldCache.DEFAULT.getBytes(reader, field, (FieldCache.ByteParser) parser); // we only request the usage of termDocs, if the range contains 0 return new FieldCacheDocIdSet(reader, (inclusiveLowerPoint <= 0 && inclusiveUpperPoint >= 0)) { + @Override boolean matchDoc(int doc) { return values[doc] >= inclusiveLowerPoint && values[doc] <= inclusiveUpperPoint; } @@ -193,6 +198,7 @@ */ public static FieldCacheRangeFilter newShortRange(String field, FieldCache.ShortParser parser, Short lowerVal, Short upperVal, boolean includeLower, boolean includeUpper) { return new FieldCacheRangeFilter(field, parser, lowerVal, upperVal, includeLower, includeUpper) { + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { final short inclusiveLowerPoint, inclusiveUpperPoint; if (lowerVal != null) { @@ -218,6 +224,7 @@ final short[] values = FieldCache.DEFAULT.getShorts(reader, field, (FieldCache.ShortParser) parser); // we only request the usage of termDocs, if the range contains 0 return new FieldCacheDocIdSet(reader, (inclusiveLowerPoint <= 0 && inclusiveUpperPoint >= 0)) { + @Override boolean matchDoc(int doc) { return values[doc] >= inclusiveLowerPoint && values[doc] <= inclusiveUpperPoint; } @@ -242,6 +249,7 @@ */ public static FieldCacheRangeFilter newIntRange(String field, FieldCache.IntParser parser, Integer lowerVal, Integer upperVal, boolean includeLower, boolean includeUpper) { return new FieldCacheRangeFilter(field, parser, lowerVal, upperVal, includeLower, includeUpper) { + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { final int inclusiveLowerPoint, inclusiveUpperPoint; if (lowerVal != null) { @@ -267,6 +275,7 @@ final int[] values = FieldCache.DEFAULT.getInts(reader, field, (FieldCache.IntParser) parser); // we only request the usage of termDocs, if the range contains 0 return new FieldCacheDocIdSet(reader, (inclusiveLowerPoint <= 0 && inclusiveUpperPoint >= 0)) { + @Override boolean matchDoc(int doc) { return values[doc] >= inclusiveLowerPoint && values[doc] <= inclusiveUpperPoint; } @@ -291,6 +300,7 @@ */ public static FieldCacheRangeFilter newLongRange(String field, FieldCache.LongParser parser, Long lowerVal, Long upperVal, boolean includeLower, boolean includeUpper) { return new FieldCacheRangeFilter(field, parser, lowerVal, upperVal, includeLower, includeUpper) { + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { final long inclusiveLowerPoint, inclusiveUpperPoint; if (lowerVal != null) { @@ -316,6 +326,7 @@ final long[] values = FieldCache.DEFAULT.getLongs(reader, field, (FieldCache.LongParser) parser); // we only request the usage of termDocs, if the range contains 0 return new FieldCacheDocIdSet(reader, (inclusiveLowerPoint <= 0L && inclusiveUpperPoint >= 0L)) { + @Override boolean matchDoc(int doc) { return values[doc] >= inclusiveLowerPoint && values[doc] <= inclusiveUpperPoint; } @@ -340,6 +351,7 @@ */ public static FieldCacheRangeFilter newFloatRange(String field, FieldCache.FloatParser parser, Float lowerVal, Float upperVal, boolean includeLower, boolean includeUpper) { return new FieldCacheRangeFilter(field, parser, lowerVal, upperVal, includeLower, includeUpper) { + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { // we transform the floating point numbers to sortable integers // using NumericUtils to easier find the next bigger/lower value @@ -369,6 +381,7 @@ final float[] values = FieldCache.DEFAULT.getFloats(reader, field, (FieldCache.FloatParser) parser); // we only request the usage of termDocs, if the range contains 0 return new FieldCacheDocIdSet(reader, (inclusiveLowerPoint <= 0.0f && inclusiveUpperPoint >= 0.0f)) { + @Override boolean matchDoc(int doc) { return values[doc] >= inclusiveLowerPoint && values[doc] <= inclusiveUpperPoint; } @@ -393,6 +406,7 @@ */ public static FieldCacheRangeFilter newDoubleRange(String field, FieldCache.DoubleParser parser, Double lowerVal, Double upperVal, boolean includeLower, boolean includeUpper) { return new FieldCacheRangeFilter(field, parser, lowerVal, upperVal, includeLower, includeUpper) { + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { // we transform the floating point numbers to sortable integers // using NumericUtils to easier find the next bigger/lower value @@ -422,6 +436,7 @@ final double[] values = FieldCache.DEFAULT.getDoubles(reader, field, (FieldCache.DoubleParser) parser); // we only request the usage of termDocs, if the range contains 0 return new FieldCacheDocIdSet(reader, (inclusiveLowerPoint <= 0.0 && inclusiveUpperPoint >= 0.0)) { + @Override boolean matchDoc(int doc) { return values[doc] >= inclusiveLowerPoint && values[doc] <= inclusiveUpperPoint; } @@ -430,6 +445,7 @@ }; } + @Override public final String toString() { final StringBuilder sb = new StringBuilder(field).append(":"); return sb.append(includeLower ? '[' : '{') @@ -440,6 +456,7 @@ .toString(); } + @Override public final boolean equals(Object o) { if (this == o) return true; if (!(o instanceof FieldCacheRangeFilter)) return false; @@ -455,6 +472,7 @@ return true; } + @Override public final int hashCode() { int h = field.hashCode(); h ^= (lowerVal != null) ? lowerVal.hashCode() : 550356204; @@ -516,10 +534,12 @@ return new DocIdSetIterator() { private int doc = -1; + @Override public int docID() { return doc; } + @Override public int nextDoc() throws IOException { do { if (!termDocs.next()) @@ -528,6 +548,7 @@ return doc; } + @Override public int advance(int target) throws IOException { if (!termDocs.skipTo(target)) return doc = NO_MORE_DOCS; @@ -544,10 +565,12 @@ return new DocIdSetIterator() { private int doc = -1; + @Override public int docID() { return doc; } + @Override public int nextDoc() { try { do { @@ -559,6 +582,7 @@ } } + @Override public int advance(int target) { try { doc = target; Index: src/java/org/apache/lucene/search/FieldCacheTermsFilter.java =================================================================== --- src/java/org/apache/lucene/search/FieldCacheTermsFilter.java (revision 830378) +++ src/java/org/apache/lucene/search/FieldCacheTermsFilter.java (working copy) @@ -106,6 +106,7 @@ return FieldCache.DEFAULT; } + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { return new FieldCacheTermsFilterDocIdSet(getFieldCache().getStringIndex(reader, field)); } @@ -140,10 +141,12 @@ protected class FieldCacheTermsFilterDocIdSetIterator extends DocIdSetIterator { private int doc = -1; + @Override public int docID() { return doc; } + @Override public int nextDoc() { try { while (!openBitSet.fastGet(fcsi.order[++doc])) {} @@ -153,6 +156,7 @@ return doc; } + @Override public int advance(int target) { try { doc = target; Index: src/java/org/apache/lucene/search/FieldComparator.java =================================================================== --- src/java/org/apache/lucene/search/FieldComparator.java (revision 830378) +++ src/java/org/apache/lucene/search/FieldComparator.java (working copy) @@ -178,26 +178,32 @@ this.parser = (ByteParser) parser; } + @Override public int compare(int slot1, int slot2) { return values[slot1] - values[slot2]; } + @Override public int compareBottom(int doc) { return bottom - currentReaderValues[doc]; } + @Override public void copy(int slot, int doc) { values[slot] = currentReaderValues[doc]; } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { currentReaderValues = FieldCache.DEFAULT.getBytes(reader, field, parser); } + @Override public void setBottom(final int bottom) { this.bottom = values[bottom]; } + @Override public Comparable value(int slot) { return Byte.valueOf(values[slot]); } @@ -213,20 +219,24 @@ docIDs = new int[numHits]; } + @Override public int compare(int slot1, int slot2) { // No overflow risk because docIDs are non-negative return docIDs[slot1] - docIDs[slot2]; } + @Override public int compareBottom(int doc) { // No overflow risk because docIDs are non-negative return bottom - (docBase + doc); } + @Override public void copy(int slot, int doc) { docIDs[slot] = docBase + doc; } + @Override public void setNextReader(IndexReader reader, int docBase) { // TODO: can we "map" our docIDs to the current // reader? saves having to then subtract on every @@ -234,10 +244,12 @@ this.docBase = docBase; } + @Override public void setBottom(final int bottom) { this.bottom = docIDs[bottom]; } + @Override public Comparable value(int slot) { return Integer.valueOf(docIDs[slot]); } @@ -258,6 +270,7 @@ this.parser = (DoubleParser) parser; } + @Override public int compare(int slot1, int slot2) { final double v1 = values[slot1]; final double v2 = values[slot2]; @@ -270,6 +283,7 @@ } } + @Override public int compareBottom(int doc) { final double v2 = currentReaderValues[doc]; if (bottom > v2) { @@ -281,18 +295,22 @@ } } + @Override public void copy(int slot, int doc) { values[slot] = currentReaderValues[doc]; } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { currentReaderValues = FieldCache.DEFAULT.getDoubles(reader, field, parser); } + @Override public void setBottom(final int bottom) { this.bottom = values[bottom]; } + @Override public Comparable value(int slot) { return Double.valueOf(values[slot]); } @@ -313,6 +331,7 @@ this.parser = (FloatParser) parser; } + @Override public int compare(int slot1, int slot2) { // TODO: are there sneaky non-branch ways to compute // sign of float? @@ -327,6 +346,7 @@ } } + @Override public int compareBottom(int doc) { // TODO: are there sneaky non-branch ways to compute // sign of float? @@ -340,18 +360,22 @@ } } + @Override public void copy(int slot, int doc) { values[slot] = currentReaderValues[doc]; } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { currentReaderValues = FieldCache.DEFAULT.getFloats(reader, field, parser); } + @Override public void setBottom(final int bottom) { this.bottom = values[bottom]; } + @Override public Comparable value(int slot) { return Float.valueOf(values[slot]); } @@ -372,6 +396,7 @@ this.parser = (IntParser) parser; } + @Override public int compare(int slot1, int slot2) { // TODO: there are sneaky non-branch ways to compute // -1/+1/0 sign @@ -388,6 +413,7 @@ } } + @Override public int compareBottom(int doc) { // TODO: there are sneaky non-branch ways to compute // -1/+1/0 sign @@ -403,18 +429,22 @@ } } + @Override public void copy(int slot, int doc) { values[slot] = currentReaderValues[doc]; } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { currentReaderValues = FieldCache.DEFAULT.getInts(reader, field, parser); } + @Override public void setBottom(final int bottom) { this.bottom = values[bottom]; } + @Override public Comparable value(int slot) { return Integer.valueOf(values[slot]); } @@ -435,6 +465,7 @@ this.parser = (LongParser) parser; } + @Override public int compare(int slot1, int slot2) { // TODO: there are sneaky non-branch ways to compute // -1/+1/0 sign @@ -449,6 +480,7 @@ } } + @Override public int compareBottom(int doc) { // TODO: there are sneaky non-branch ways to compute // -1/+1/0 sign @@ -462,18 +494,22 @@ } } + @Override public void copy(int slot, int doc) { values[slot] = currentReaderValues[doc]; } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { currentReaderValues = FieldCache.DEFAULT.getLongs(reader, field, parser); } + @Override public void setBottom(final int bottom) { this.bottom = values[bottom]; } + @Override public Comparable value(int slot) { return Long.valueOf(values[slot]); } @@ -494,34 +530,41 @@ scores = new float[numHits]; } + @Override public int compare(int slot1, int slot2) { final float score1 = scores[slot1]; final float score2 = scores[slot2]; return score1 > score2 ? -1 : (score1 < score2 ? 1 : 0); } + @Override public int compareBottom(int doc) throws IOException { float score = scorer.score(); return bottom > score ? -1 : (bottom < score ? 1 : 0); } + @Override public void copy(int slot, int doc) throws IOException { scores[slot] = scorer.score(); } + @Override public void setNextReader(IndexReader reader, int docBase) { } + @Override public void setBottom(final int bottom) { this.bottom = scores[bottom]; } + @Override public void setScorer(Scorer scorer) { // wrap with a ScoreCachingWrappingScorer so that successive calls to // score() will not incur score computation over and over again. this.scorer = new ScoreCachingWrappingScorer(scorer); } + @Override public Comparable value(int slot) { return Float.valueOf(scores[slot]); } @@ -542,26 +585,32 @@ this.parser = (ShortParser) parser; } + @Override public int compare(int slot1, int slot2) { return values[slot1] - values[slot2]; } + @Override public int compareBottom(int doc) { return bottom - currentReaderValues[doc]; } + @Override public void copy(int slot, int doc) { values[slot] = currentReaderValues[doc]; } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { currentReaderValues = FieldCache.DEFAULT.getShorts(reader, field, parser); } + @Override public void setBottom(final int bottom) { this.bottom = values[bottom]; } + @Override public Comparable value(int slot) { return Short.valueOf(values[slot]); } @@ -583,6 +632,7 @@ collator = Collator.getInstance(locale); } + @Override public int compare(int slot1, int slot2) { final String val1 = values[slot1]; final String val2 = values[slot2]; @@ -597,6 +647,7 @@ return collator.compare(val1, val2); } + @Override public int compareBottom(int doc) { final String val2 = currentReaderValues[doc]; if (bottom == null) { @@ -610,18 +661,22 @@ return collator.compare(bottom, val2); } + @Override public void copy(int slot, int doc) { values[slot] = currentReaderValues[doc]; } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { currentReaderValues = FieldCache.DEFAULT.getStrings(reader, field); } + @Override public void setBottom(final int bottom) { this.bottom = values[bottom]; } + @Override public Comparable value(int slot) { return values[slot]; } @@ -662,6 +717,7 @@ this.field = field; } + @Override public int compare(int slot1, int slot2) { if (readerGen[slot1] == readerGen[slot2]) { int cmp = ords[slot1] - ords[slot2]; @@ -683,6 +739,7 @@ return val1.compareTo(val2); } + @Override public int compareBottom(int doc) { assert bottomSlot != -1; int order = this.order[doc]; @@ -734,6 +791,7 @@ ords[slot] = index; } + @Override public void copy(int slot, int doc) { final int ord = order[doc]; ords[slot] = ord; @@ -742,6 +800,7 @@ readerGen[slot] = currentReaderGen; } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { StringIndex currentReaderValues = FieldCache.DEFAULT.getStringIndex(reader, field); currentReaderGen++; @@ -754,6 +813,7 @@ } } + @Override public void setBottom(final int bottom) { bottomSlot = bottom; if (readerGen[bottom] != currentReaderGen) { @@ -765,6 +825,7 @@ bottomValue = values[bottom]; } + @Override public Comparable value(int slot) { return values[slot]; } @@ -798,6 +859,7 @@ this.field = field; } + @Override public int compare(int slot1, int slot2) { final String val1 = values[slot1]; final String val2 = values[slot2]; @@ -813,6 +875,7 @@ return val1.compareTo(val2); } + @Override public int compareBottom(int doc) { final String val2 = currentReaderValues[doc]; if (bottom == null) { @@ -826,18 +889,22 @@ return bottom.compareTo(val2); } + @Override public void copy(int slot, int doc) { values[slot] = currentReaderValues[doc]; } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { currentReaderValues = FieldCache.DEFAULT.getStrings(reader, field); } + @Override public void setBottom(final int bottom) { this.bottom = values[bottom]; } + @Override public Comparable value(int slot) { return values[slot]; } Index: src/java/org/apache/lucene/search/FieldDoc.java =================================================================== --- src/java/org/apache/lucene/search/FieldDoc.java (revision 830378) +++ src/java/org/apache/lucene/search/FieldDoc.java (working copy) @@ -38,37 +38,38 @@ */ public class FieldDoc extends ScoreDoc { - /** Expert: The values which are used to sort the referenced document. - * The order of these will match the original sort criteria given by a - * Sort object. Each Object will be either an Integer, Float or String, - * depending on the type of values in the terms of the original field. - * @see Sort - * @see Searcher#search(Query,Filter,int,Sort) - */ - public Comparable[] fields; + /** Expert: The values which are used to sort the referenced document. + * The order of these will match the original sort criteria given by a + * Sort object. Each Object will be either an Integer, Float or String, + * depending on the type of values in the terms of the original field. + * @see Sort + * @see Searcher#search(Query,Filter,int,Sort) + */ + public Comparable[] fields; - /** Expert: Creates one of these objects with empty sort information. */ - public FieldDoc (int doc, float score) { - super (doc, score); - } + /** Expert: Creates one of these objects with empty sort information. */ + public FieldDoc (int doc, float score) { + super (doc, score); + } - /** Expert: Creates one of these objects with the given sort information. */ - public FieldDoc (int doc, float score, Comparable[] fields) { - super (doc, score); - this.fields = fields; - } - - // A convenience method for debugging. - public String toString() { - // super.toString returns the doc and score information, so just add the + /** Expert: Creates one of these objects with the given sort information. */ + public FieldDoc (int doc, float score, Comparable[] fields) { + super (doc, score); + this.fields = fields; + } + + // A convenience method for debugging. + @Override + public String toString() { + // super.toString returns the doc and score information, so just add the // fields information - StringBuilder sb = new StringBuilder(super.toString()); - sb.append("["); - for (int i = 0; i < fields.length; i++) { + StringBuilder sb = new StringBuilder(super.toString()); + sb.append("["); + for (int i = 0; i < fields.length; i++) { sb.append(fields[i]).append(", "); } - sb.setLength(sb.length() - 2); // discard last ", " - sb.append("]"); - return super.toString(); - } + sb.setLength(sb.length() - 2); // discard last ", " + sb.append("]"); + return super.toString(); + } } Index: src/java/org/apache/lucene/search/FieldValueHitQueue.java =================================================================== --- src/java/org/apache/lucene/search/FieldValueHitQueue.java (revision 830378) +++ src/java/org/apache/lucene/search/FieldValueHitQueue.java (working copy) @@ -47,6 +47,7 @@ this.score = score; } + @Override public String toString() { return "slot:" + slot + " docID:" + docID + " score=" + score; } @@ -84,6 +85,7 @@ * @param b ScoreDoc * @return true if document a should be sorted after document b. */ + @Override protected boolean lessThan(final Entry hitA, final Entry hitB) { assert hitA != hitB; @@ -121,6 +123,7 @@ initialize(size); } + @Override protected boolean lessThan(final Entry hitA, final Entry hitB) { assert hitA != hitB; @@ -190,6 +193,7 @@ protected final FieldComparator[] comparators; protected final int[] reverseMul; + @Override protected abstract boolean lessThan (final Entry a, final Entry b); /** Index: src/java/org/apache/lucene/search/FilteredDocIdSet.java =================================================================== --- src/java/org/apache/lucene/search/FilteredDocIdSet.java (revision 830378) +++ src/java/org/apache/lucene/search/FilteredDocIdSet.java (working copy) @@ -70,6 +70,7 @@ @Override public DocIdSetIterator iterator() throws IOException { return new FilteredDocIdSetIterator(_innerSet.iterator()) { + @Override protected boolean match(int docid) throws IOException { return FilteredDocIdSet.this.match(docid); } Index: src/java/org/apache/lucene/search/FilteredDocIdSetIterator.java =================================================================== --- src/java/org/apache/lucene/search/FilteredDocIdSetIterator.java (revision 830378) +++ src/java/org/apache/lucene/search/FilteredDocIdSetIterator.java (working copy) @@ -49,10 +49,12 @@ */ abstract protected boolean match(int doc) throws IOException; + @Override public int docID() { return doc; } + @Override public int nextDoc() throws IOException { while ((doc = _innerIter.nextDoc()) != NO_MORE_DOCS) { if (match(doc)) { @@ -62,6 +64,7 @@ return doc; } + @Override public int advance(int target) throws IOException { doc = _innerIter.advance(target); if (doc != NO_MORE_DOCS) { Index: src/java/org/apache/lucene/search/FilteredQuery.java =================================================================== --- src/java/org/apache/lucene/search/FilteredQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/FilteredQuery.java (working copy) @@ -58,6 +58,7 @@ * Returns a Weight that applies the filter to the enclosed query's Weight. * This is accomplished by overriding the Scorer returned by the Weight. */ + @Override public Weight createWeight(final Searcher searcher) throws IOException { final Weight weight = query.createWeight (searcher); final Similarity similarity = query.getSimilarity(searcher); Index: src/java/org/apache/lucene/search/FilteredTermEnum.java =================================================================== --- src/java/org/apache/lucene/search/FilteredTermEnum.java (revision 830378) +++ src/java/org/apache/lucene/search/FilteredTermEnum.java (working copy) @@ -60,6 +60,7 @@ * Returns the docFreq of the current Term in the enumeration. * Returns -1 if no Term matches or all terms have been enumerated. */ + @Override public int docFreq() { if (currentTerm == null) return -1; assert actualEnum != null; @@ -67,6 +68,7 @@ } /** Increments the enumeration to the next element. True if one exists. */ + @Override public boolean next() throws IOException { if (actualEnum == null) return false; // the actual enumerator is not initialized! currentTerm = null; @@ -87,11 +89,13 @@ /** Returns the current Term in the enumeration. * Returns null if no Term matches or all terms have been enumerated. */ + @Override public Term term() { return currentTerm; } /** Closes the enumeration to further activity, freeing resources. */ + @Override public void close() throws IOException { if (actualEnum != null) actualEnum.close(); currentTerm = null; Index: src/java/org/apache/lucene/search/function/ByteFieldSource.java =================================================================== --- src/java/org/apache/lucene/search/function/ByteFieldSource.java (revision 830378) +++ src/java/org/apache/lucene/search/function/ByteFieldSource.java (working copy) @@ -66,27 +66,33 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.ValueSource#description() */ + @Override public String description() { return "byte(" + super.description() + ')'; } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#getCachedValues(org.apache.lucene.search.FieldCache, java.lang.String, org.apache.lucene.index.IndexReader) */ + @Override public DocValues getCachedFieldValues (FieldCache cache, String field, IndexReader reader) throws IOException { final byte[] arr = cache.getBytes(reader, field, parser); return new DocValues() { /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#floatVal(int) */ + @Override public float floatVal(int doc) { return (float) arr[doc]; } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#intVal(int) */ + @Override public int intVal(int doc) { return arr[doc]; } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#toString(int) */ + @Override public String toString(int doc) { return description() + '=' + intVal(doc); } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#getInnerArray() */ + @Override Object getInnerArray() { return arr; } @@ -94,6 +100,7 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#cachedFieldSourceEquals(org.apache.lucene.search.function.FieldCacheSource) */ + @Override public boolean cachedFieldSourceEquals(FieldCacheSource o) { if (o.getClass() != ByteFieldSource.class) { return false; @@ -105,6 +112,7 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#cachedFieldSourceHashCode() */ + @Override public int cachedFieldSourceHashCode() { return parser==null ? Byte.class.hashCode() : parser.getClass().hashCode(); Index: src/java/org/apache/lucene/search/function/FieldCacheSource.java =================================================================== --- src/java/org/apache/lucene/search/function/FieldCacheSource.java (revision 830378) +++ src/java/org/apache/lucene/search/function/FieldCacheSource.java (working copy) @@ -60,11 +60,13 @@ } /* (non-Javadoc) @see org.apache.lucene.search.function.ValueSource#getValues(org.apache.lucene.index.IndexReader) */ + @Override public final DocValues getValues(IndexReader reader) throws IOException { return getCachedFieldValues(FieldCache.DEFAULT, field, reader); } /* (non-Javadoc) @see org.apache.lucene.search.function.ValueSource#description() */ + @Override public String description() { return field; } @@ -78,6 +80,7 @@ public abstract DocValues getCachedFieldValues(FieldCache cache, String field, IndexReader reader) throws IOException; /*(non-Javadoc) @see java.lang.Object#equals(java.lang.Object) */ + @Override public final boolean equals(Object o) { if (!(o instanceof FieldCacheSource)) { return false; @@ -89,6 +92,7 @@ } /*(non-Javadoc) @see java.lang.Object#hashCode() */ + @Override public final int hashCode() { return field.hashCode() + Index: src/java/org/apache/lucene/search/function/FieldScoreQuery.java =================================================================== --- src/java/org/apache/lucene/search/function/FieldScoreQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/function/FieldScoreQuery.java (working copy) @@ -90,6 +90,7 @@ this.typeName = name; } /*(non-Javadoc) @see java.lang.Object#toString() */ + @Override public String toString() { return getClass().getName()+"::"+typeName; } Index: src/java/org/apache/lucene/search/function/FloatFieldSource.java =================================================================== --- src/java/org/apache/lucene/search/function/FloatFieldSource.java (revision 830378) +++ src/java/org/apache/lucene/search/function/FloatFieldSource.java (working copy) @@ -66,23 +66,28 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.ValueSource#description() */ + @Override public String description() { return "float(" + super.description() + ')'; } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#getCachedValues(org.apache.lucene.search.FieldCache, java.lang.String, org.apache.lucene.index.IndexReader) */ + @Override public DocValues getCachedFieldValues (FieldCache cache, String field, IndexReader reader) throws IOException { final float[] arr = cache.getFloats(reader, field, parser); return new DocValues() { /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#floatVal(int) */ + @Override public float floatVal(int doc) { return arr[doc]; } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#toString(int) */ + @Override public String toString(int doc) { return description() + '=' + arr[doc]; } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#getInnerArray() */ + @Override Object getInnerArray() { return arr; } @@ -90,6 +95,7 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#cachedFieldSourceEquals(org.apache.lucene.search.function.FieldCacheSource) */ + @Override public boolean cachedFieldSourceEquals(FieldCacheSource o) { if (o.getClass() != FloatFieldSource.class) { return false; @@ -101,6 +107,7 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#cachedFieldSourceHashCode() */ + @Override public int cachedFieldSourceHashCode() { return parser==null ? Float.class.hashCode() : parser.getClass().hashCode(); Index: src/java/org/apache/lucene/search/function/IntFieldSource.java =================================================================== --- src/java/org/apache/lucene/search/function/IntFieldSource.java (revision 830378) +++ src/java/org/apache/lucene/search/function/IntFieldSource.java (working copy) @@ -66,27 +66,33 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.ValueSource#description() */ + @Override public String description() { return "int(" + super.description() + ')'; } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#getCachedValues(org.apache.lucene.search.FieldCache, java.lang.String, org.apache.lucene.index.IndexReader) */ + @Override public DocValues getCachedFieldValues (FieldCache cache, String field, IndexReader reader) throws IOException { final int[] arr = cache.getInts(reader, field, parser); return new DocValues() { /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#floatVal(int) */ + @Override public float floatVal(int doc) { return (float) arr[doc]; } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#intVal(int) */ + @Override public int intVal(int doc) { return arr[doc]; } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#toString(int) */ + @Override public String toString(int doc) { return description() + '=' + intVal(doc); } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#getInnerArray() */ + @Override Object getInnerArray() { return arr; } @@ -94,6 +100,7 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#cachedFieldSourceEquals(org.apache.lucene.search.function.FieldCacheSource) */ + @Override public boolean cachedFieldSourceEquals(FieldCacheSource o) { if (o.getClass() != IntFieldSource.class) { return false; @@ -105,6 +112,7 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#cachedFieldSourceHashCode() */ + @Override public int cachedFieldSourceHashCode() { return parser==null ? Integer.class.hashCode() : parser.getClass().hashCode(); Index: src/java/org/apache/lucene/search/function/MultiValueSource.java =================================================================== --- src/java/org/apache/lucene/search/function/MultiValueSource.java (revision 830378) +++ src/java/org/apache/lucene/search/function/MultiValueSource.java (working copy) @@ -42,6 +42,7 @@ this.other = other; } + @Override public DocValues getValues(IndexReader reader) throws IOException { IndexReader[] subReaders = reader.getSequentialSubReaders(); @@ -54,10 +55,12 @@ } } + @Override public String description() { return other.description(); } + @Override public boolean equals(Object o) { if (o instanceof MultiValueSource) { return ((MultiValueSource) o).other.equals(other); @@ -66,6 +69,7 @@ } } + @Override public int hashCode() { return 31 * other.hashCode(); } @@ -86,36 +90,43 @@ } } + @Override public float floatVal(int doc) { final int n = ReaderUtil.subIndex(doc, docStarts); return docValues[n].floatVal(doc-docStarts[n]); } + @Override public int intVal(int doc) { final int n = ReaderUtil.subIndex(doc, docStarts); return docValues[n].intVal(doc-docStarts[n]); } + @Override public long longVal(int doc) { final int n = ReaderUtil.subIndex(doc, docStarts); return docValues[n].longVal(doc-docStarts[n]); } + @Override public double doubleVal(int doc) { final int n = ReaderUtil.subIndex(doc, docStarts); return docValues[n].doubleVal(doc-docStarts[n]); } + @Override public String strVal(int doc) { final int n = ReaderUtil.subIndex(doc, docStarts); return docValues[n].strVal(doc-docStarts[n]); } + @Override public String toString(int doc) { final int n = ReaderUtil.subIndex(doc, docStarts); return docValues[n].toString(doc-docStarts[n]); } + @Override public Explanation explain(int doc) { final int n = ReaderUtil.subIndex(doc, docStarts); return docValues[n].explain(doc-docStarts[n]); Index: src/java/org/apache/lucene/search/function/OrdFieldSource.java =================================================================== --- src/java/org/apache/lucene/search/function/OrdFieldSource.java (revision 830378) +++ src/java/org/apache/lucene/search/function/OrdFieldSource.java (working copy) @@ -67,28 +67,34 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.ValueSource#description() */ + @Override public String description() { return "ord(" + field + ')'; } /*(non-Javadoc) @see org.apache.lucene.search.function.ValueSource#getValues(org.apache.lucene.index.IndexReader) */ + @Override public DocValues getValues(IndexReader reader) throws IOException { final int[] arr = FieldCache.DEFAULT.getStringIndex(reader, field).order; return new DocValues() { /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#floatVal(int) */ + @Override public float floatVal(int doc) { return (float)arr[doc]; } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#strVal(int) */ + @Override public String strVal(int doc) { // the string value of the ordinal, not the string itself return Integer.toString(arr[doc]); } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#toString(int) */ + @Override public String toString(int doc) { return description() + '=' + intVal(doc); } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#getInnerArray() */ + @Override Object getInnerArray() { return arr; } @@ -96,6 +102,7 @@ } /*(non-Javadoc) @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object o) { if (o.getClass() != OrdFieldSource.class) return false; OrdFieldSource other = (OrdFieldSource)o; @@ -105,6 +112,7 @@ private static final int hcode = OrdFieldSource.class.hashCode(); /*(non-Javadoc) @see java.lang.Object#hashCode() */ + @Override public int hashCode() { return hcode + field.hashCode(); } Index: src/java/org/apache/lucene/search/function/ReverseOrdFieldSource.java =================================================================== --- src/java/org/apache/lucene/search/function/ReverseOrdFieldSource.java (revision 830378) +++ src/java/org/apache/lucene/search/function/ReverseOrdFieldSource.java (working copy) @@ -68,11 +68,13 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.ValueSource#description() */ + @Override public String description() { return "rord("+field+')'; } /*(non-Javadoc) @see org.apache.lucene.search.function.ValueSource#getValues(org.apache.lucene.index.IndexReader) */ + @Override public DocValues getValues(IndexReader reader) throws IOException { final FieldCache.StringIndex sindex = FieldCache.DEFAULT.getStringIndex(reader, field); @@ -81,23 +83,28 @@ return new DocValues() { /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#floatVal(int) */ + @Override public float floatVal(int doc) { return (float)(end - arr[doc]); } /* (non-Javadoc) @see org.apache.lucene.search.function.DocValues#intVal(int) */ + @Override public int intVal(int doc) { return end - arr[doc]; } /* (non-Javadoc) @see org.apache.lucene.search.function.DocValues#strVal(int) */ + @Override public String strVal(int doc) { // the string value of the ordinal, not the string itself return Integer.toString(intVal(doc)); } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#toString(int) */ + @Override public String toString(int doc) { return description() + '=' + strVal(doc); } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#getInnerArray() */ + @Override Object getInnerArray() { return arr; } @@ -105,6 +112,7 @@ } /*(non-Javadoc) @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object o) { if (o.getClass() != ReverseOrdFieldSource.class) return false; ReverseOrdFieldSource other = (ReverseOrdFieldSource)o; @@ -114,6 +122,7 @@ private static final int hcode = ReverseOrdFieldSource.class.hashCode(); /*(non-Javadoc) @see java.lang.Object#hashCode() */ + @Override public int hashCode() { return hcode + field.hashCode(); } Index: src/java/org/apache/lucene/search/function/ShortFieldSource.java =================================================================== --- src/java/org/apache/lucene/search/function/ShortFieldSource.java (revision 830378) +++ src/java/org/apache/lucene/search/function/ShortFieldSource.java (working copy) @@ -66,27 +66,33 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.ValueSource#description() */ + @Override public String description() { return "short(" + super.description() + ')'; } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#getCachedValues(org.apache.lucene.search.FieldCache, java.lang.String, org.apache.lucene.index.IndexReader) */ + @Override public DocValues getCachedFieldValues (FieldCache cache, String field, IndexReader reader) throws IOException { final short[] arr = cache.getShorts(reader, field, parser); return new DocValues() { /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#floatVal(int) */ + @Override public float floatVal(int doc) { return (float) arr[doc]; } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#intVal(int) */ + @Override public int intVal(int doc) { return arr[doc]; } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#toString(int) */ + @Override public String toString(int doc) { return description() + '=' + intVal(doc); } /*(non-Javadoc) @see org.apache.lucene.search.function.DocValues#getInnerArray() */ + @Override Object getInnerArray() { return arr; } @@ -94,6 +100,7 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#cachedFieldSourceEquals(org.apache.lucene.search.function.FieldCacheSource) */ + @Override public boolean cachedFieldSourceEquals(FieldCacheSource o) { if (o.getClass() != ShortFieldSource.class) { return false; @@ -105,6 +112,7 @@ } /*(non-Javadoc) @see org.apache.lucene.search.function.FieldCacheSource#cachedFieldSourceHashCode() */ + @Override public int cachedFieldSourceHashCode() { return parser==null ? Short.class.hashCode() : parser.getClass().hashCode(); Index: src/java/org/apache/lucene/search/function/ValueSource.java =================================================================== --- src/java/org/apache/lucene/search/function/ValueSource.java (revision 830378) +++ src/java/org/apache/lucene/search/function/ValueSource.java (working copy) @@ -54,6 +54,7 @@ public abstract String description(); /* (non-Javadoc) @see java.lang.Object#toString() */ + @Override public String toString() { return description(); } @@ -62,12 +63,14 @@ * Needed for possible caching of query results - used by {@link ValueSourceQuery#equals(Object)}. * @see Object#equals(Object) */ + @Override public abstract boolean equals(Object o); /** * Needed for possible caching of query results - used by {@link ValueSourceQuery#hashCode()}. * @see Object#hashCode() */ + @Override public abstract int hashCode(); } Index: src/java/org/apache/lucene/search/FuzzyQuery.java =================================================================== --- src/java/org/apache/lucene/search/FuzzyQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/FuzzyQuery.java (working copy) @@ -109,6 +109,7 @@ return prefixLength; } + @Override protected FilteredTermEnum getEnum(IndexReader reader) throws IOException { return new FuzzyTermEnum(reader, getTerm(), minimumSimilarity, prefixLength); } @@ -120,6 +121,7 @@ return term; } + @Override public void setRewriteMethod(RewriteMethod method) { throw new UnsupportedOperationException("FuzzyQuery cannot change rewrite method"); } @@ -172,6 +174,7 @@ return query; } + @Override public String toString(String field) { StringBuilder buffer = new StringBuilder(); if (!term.field().equals(field)) { Index: src/java/org/apache/lucene/search/FuzzyTermEnum.java =================================================================== --- src/java/org/apache/lucene/search/FuzzyTermEnum.java (revision 830378) +++ src/java/org/apache/lucene/search/FuzzyTermEnum.java (working copy) @@ -125,6 +125,7 @@ * The termCompare method in FuzzyTermEnum uses Levenshtein distance to * calculate the distance between the given term and the comparing term. */ + @Override protected final boolean termCompare(Term term) { if (field == term.field() && term.text().startsWith(prefix)) { final String target = term.text().substring(prefix.length()); @@ -136,11 +137,13 @@ } /** {@inheritDoc} */ + @Override public final float difference() { return (similarity - minimumSimilarity) * scale_factor; } /** {@inheritDoc} */ + @Override public final boolean endEnum() { return endEnum; } @@ -271,6 +274,7 @@ } /** {@inheritDoc} */ + @Override public void close() throws IOException { p = d = null; searchTerm = null; Index: src/java/org/apache/lucene/search/HitQueue.java =================================================================== --- src/java/org/apache/lucene/search/HitQueue.java (revision 830378) +++ src/java/org/apache/lucene/search/HitQueue.java (working copy) @@ -68,6 +68,7 @@ } // Returns null if prePopulate is false. + @Override protected ScoreDoc getSentinelObject() { // Always set the doc Id to MAX_VALUE so that it won't be favored by // lessThan. This generally should not happen since if score is not NEG_INF, @@ -75,6 +76,7 @@ return !prePopulate ? null : new ScoreDoc(Integer.MAX_VALUE, Float.NEGATIVE_INFINITY); } + @Override protected final boolean lessThan(ScoreDoc hitA, ScoreDoc hitB) { if (hitA.score == hitB.score) return hitA.doc > hitB.doc; Index: src/java/org/apache/lucene/search/IndexSearcher.java =================================================================== --- src/java/org/apache/lucene/search/IndexSearcher.java (revision 830378) +++ src/java/org/apache/lucene/search/IndexSearcher.java (working copy) @@ -116,17 +116,20 @@ * If the IndexReader was supplied implicitly by specifying a directory, then * the IndexReader gets closed. */ + @Override public void close() throws IOException { if(closeReader) reader.close(); } // inherit javadoc + @Override public int docFreq(Term term) throws IOException { return reader.docFreq(term); } // inherit javadoc + @Override public Document doc(int i) throws CorruptIndexException, IOException { return reader.document(i); } @@ -137,11 +140,13 @@ } // inherit javadoc + @Override public int maxDoc() throws IOException { return reader.maxDoc(); } // inherit javadoc + @Override public TopDocs search(Weight weight, Filter filter, final int nDocs) throws IOException { if (nDocs <= 0) { @@ -153,6 +158,7 @@ return collector.topDocs(); } + @Override public TopFieldDocs search(Weight weight, Filter filter, final int nDocs, Sort sort) throws IOException { return search(weight, filter, nDocs, sort, true); @@ -186,6 +192,7 @@ return (TopFieldDocs) collector.topDocs(); } + @Override public void search(Weight weight, Filter filter, Collector collector) throws IOException { @@ -251,6 +258,7 @@ } } + @Override public Query rewrite(Query original) throws IOException { Query query = original; for (Query rewrittenQuery = query.rewrite(reader); rewrittenQuery != query; @@ -260,6 +268,7 @@ return query; } + @Override public Explanation explain(Weight weight, int doc) throws IOException { int n = ReaderUtil.subIndex(doc, docStarts); int deBasedDoc = doc - docStarts[n]; Index: src/java/org/apache/lucene/search/MultiSearcher.java =================================================================== --- src/java/org/apache/lucene/search/MultiSearcher.java (revision 830378) +++ src/java/org/apache/lucene/search/MultiSearcher.java (working copy) @@ -52,6 +52,7 @@ setSimilarity(similarity); } + @Override public int docFreq(Term term) { int df; try { @@ -63,6 +64,7 @@ return df; } + @Override public int[] docFreqs(Term[] terms) { int[] result = new int[terms.length]; for (int i = 0; i < terms.length; i++) { @@ -71,10 +73,12 @@ return result; } + @Override public int maxDoc() { return maxDoc; } + @Override public Query rewrite(Query query) { // this is a bit of a hack. We know that a query which // creates a Weight based on this Dummy-Searcher is @@ -83,10 +87,12 @@ return query; } + @Override public void close() { throw new UnsupportedOperationException(); } + @Override public Document doc(int i) { throw new UnsupportedOperationException(); } @@ -95,18 +101,22 @@ throw new UnsupportedOperationException(); } + @Override public Explanation explain(Weight weight,int doc) { throw new UnsupportedOperationException(); } + @Override public void search(Weight weight, Filter filter, Collector results) { throw new UnsupportedOperationException(); } + @Override public TopDocs search(Weight weight,Filter filter,int n) { throw new UnsupportedOperationException(); } + @Override public TopFieldDocs search(Weight weight,Filter filter,int n,Sort sort) { throw new UnsupportedOperationException(); } @@ -138,11 +148,13 @@ } // inherit javadoc + @Override public void close() throws IOException { for (int i = 0; i < searchables.length; i++) searchables[i].close(); } + @Override public int docFreq(Term term) throws IOException { int docFreq = 0; for (int i = 0; i < searchables.length; i++) @@ -151,6 +163,7 @@ } // inherit javadoc + @Override public Document doc(int n) throws CorruptIndexException, IOException { int i = subSearcher(n); // find searcher index return searchables[i].doc(n - starts[i]); // dispatch to searcher @@ -174,10 +187,12 @@ return n - starts[subSearcher(n)]; } + @Override public int maxDoc() throws IOException { return maxDoc; } + @Override public TopDocs search(Weight weight, Filter filter, int nDocs) throws IOException { @@ -205,6 +220,7 @@ return new TopDocs(totalHits, scoreDocs, maxScore); } + @Override public TopFieldDocs search (Weight weight, Filter filter, int n, Sort sort) throws IOException { FieldDocSortedHitQueue hq = null; @@ -247,6 +263,7 @@ } // inherit javadoc + @Override public void search(Weight weight, Filter filter, final Collector collector) throws IOException { for (int i = 0; i < searchables.length; i++) { @@ -254,15 +271,19 @@ final int start = starts[i]; final Collector hc = new Collector() { + @Override public void setScorer(Scorer scorer) throws IOException { collector.setScorer(scorer); } + @Override public void collect(int doc) throws IOException { collector.collect(doc); } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { collector.setNextReader(reader, start + docBase); } + @Override public boolean acceptsDocsOutOfOrder() { return collector.acceptsDocsOutOfOrder(); } @@ -272,6 +293,7 @@ } } + @Override public Query rewrite(Query original) throws IOException { Query[] queries = new Query[searchables.length]; for (int i = 0; i < searchables.length; i++) { @@ -280,6 +302,7 @@ return queries[0].combine(queries); } + @Override public Explanation explain(Weight weight, int doc) throws IOException { int i = subSearcher(doc); // find searcher index return searchables[i].explain(weight, doc - starts[i]); // dispatch to searcher @@ -300,6 +323,7 @@ * * @return rewritten queries */ + @Override protected Weight createWeight(Query original) throws IOException { // step 1 Query rewrittenQuery = rewrite(original); Index: src/java/org/apache/lucene/search/MultiTermQuery.java =================================================================== --- src/java/org/apache/lucene/search/MultiTermQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/MultiTermQuery.java (working copy) @@ -67,6 +67,7 @@ } private static final class ConstantScoreFilterRewrite extends RewriteMethod implements Serializable { + @Override public Query rewrite(IndexReader reader, MultiTermQuery query) { Query result = new ConstantScoreQuery(new MultiTermQueryWrapperFilter(query)); result.setBoost(query.getBoost()); @@ -94,6 +95,7 @@ public final static RewriteMethod CONSTANT_SCORE_FILTER_REWRITE = new ConstantScoreFilterRewrite(); private static class ScoringBooleanQueryRewrite extends RewriteMethod implements Serializable { + @Override public Query rewrite(IndexReader reader, MultiTermQuery query) throws IOException { FilteredTermEnum enumerator = query.getEnum(reader); @@ -138,6 +140,7 @@ public final static RewriteMethod SCORING_BOOLEAN_QUERY_REWRITE = new ScoringBooleanQueryRewrite(); private static class ConstantScoreBooleanQueryRewrite extends ScoringBooleanQueryRewrite implements Serializable { + @Override public Query rewrite(IndexReader reader, MultiTermQuery query) throws IOException { // strip the scores off Query result = new ConstantScoreQuery(new QueryWrapperFilter(super.rewrite(reader, query))); @@ -146,6 +149,7 @@ } // Make sure we are still a singleton even after deserializing + @Override protected Object readResolve() { return CONSTANT_SCORE_BOOLEAN_QUERY_REWRITE; } @@ -212,6 +216,7 @@ return docCountPercent; } + @Override public Query rewrite(IndexReader reader, MultiTermQuery query) throws IOException { // Get the enum and start visiting terms. If we // exhaust the enum before hitting either of the @@ -361,6 +366,7 @@ numberOfTerms += inc; } + @Override public Query rewrite(IndexReader reader) throws IOException { return rewriteMethod.rewrite(reader, this); } Index: src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java =================================================================== --- src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java (revision 830378) +++ src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java (working copy) @@ -142,6 +142,7 @@ // else fill into a OpenBitSet final OpenBitSet bitSet = new OpenBitSet(reader.maxDoc()); new TermGenerator() { + @Override public void handleDoc(int doc) { bitSet.set(doc); } Index: src/java/org/apache/lucene/search/ParallelMultiSearcher.java =================================================================== --- src/java/org/apache/lucene/search/ParallelMultiSearcher.java (revision 830378) +++ src/java/org/apache/lucene/search/ParallelMultiSearcher.java (working copy) @@ -32,7 +32,7 @@ private Searchable[] searchables; private int[] starts; - + /** Creates a searchable which searches searchables. */ public ParallelMultiSearcher(Searchable... searchables) throws IOException { super(searchables); @@ -43,6 +43,7 @@ /** * TODO: parallelize this one too */ + @Override public int docFreq(Term term) throws IOException { return super.docFreq(term); } @@ -52,6 +53,7 @@ * Searchable, waits for each search to complete and merge * the results back together. */ + @Override public TopDocs search(Weight weight, Filter filter, int nDocs) throws IOException { HitQueue hq = new HitQueue(nDocs, false); @@ -97,6 +99,7 @@ * Searchable, waits for each search to complete and merges * the results back together. */ + @Override public TopFieldDocs search(Weight weight, Filter filter, int nDocs, Sort sort) throws IOException { // don't specify the fields - we'll wait to do this until we get results @@ -153,6 +156,7 @@ * * TODO: parallelize this one too */ + @Override public void search(Weight weight, Filter filter, final Collector collector) throws IOException { for (int i = 0; i < searchables.length; i++) { @@ -160,15 +164,22 @@ final int start = starts[i]; final Collector hc = new Collector() { + @Override public void setScorer(Scorer scorer) throws IOException { collector.setScorer(scorer); } + + @Override public void collect(int doc) throws IOException { collector.collect(doc); } + + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { collector.setNextReader(reader, start + docBase); } + + @Override public boolean acceptsDocsOutOfOrder() { return collector.acceptsDocsOutOfOrder(); } @@ -176,12 +187,13 @@ searchables[i].search(weight, filter, hc); } - } + } /* * TODO: this one could be parallelized too * @see org.apache.lucene.search.Searchable#rewrite(org.apache.lucene.search.Query) */ + @Override public Query rewrite(Query original) throws IOException { return super.rewrite(original); } @@ -230,6 +242,7 @@ this.sort = sort; } + @Override @SuppressWarnings ("unchecked") public void run() { try { Index: src/java/org/apache/lucene/search/payloads/AveragePayloadFunction.java =================================================================== --- src/java/org/apache/lucene/search/payloads/AveragePayloadFunction.java (revision 830378) +++ src/java/org/apache/lucene/search/payloads/AveragePayloadFunction.java (working copy) @@ -26,14 +26,17 @@ **/ public class AveragePayloadFunction extends PayloadFunction{ + @Override public float currentScore(int docId, String field, int start, int end, int numPayloadsSeen, float currentScore, float currentPayloadScore) { return currentPayloadScore + currentScore; } + @Override public float docScore(int docId, String field, int numPayloadsSeen, float payloadScore) { return numPayloadsSeen > 0 ? (payloadScore / numPayloadsSeen) : 1; } + @Override public int hashCode() { final int prime = 31; int result = 1; @@ -41,6 +44,7 @@ return result; } + @Override public boolean equals(Object obj) { if (this == obj) return true; Index: src/java/org/apache/lucene/search/payloads/MaxPayloadFunction.java =================================================================== --- src/java/org/apache/lucene/search/payloads/MaxPayloadFunction.java (revision 830378) +++ src/java/org/apache/lucene/search/payloads/MaxPayloadFunction.java (working copy) @@ -25,14 +25,17 @@ * **/ public class MaxPayloadFunction extends PayloadFunction { + @Override public float currentScore(int docId, String field, int start, int end, int numPayloadsSeen, float currentScore, float currentPayloadScore) { return Math.max(currentPayloadScore, currentScore); } + @Override public float docScore(int docId, String field, int numPayloadsSeen, float payloadScore) { return numPayloadsSeen > 0 ? payloadScore : 1; } + @Override public int hashCode() { final int prime = 31; int result = 1; @@ -40,6 +43,7 @@ return result; } + @Override public boolean equals(Object obj) { if (this == obj) return true; Index: src/java/org/apache/lucene/search/payloads/MinPayloadFunction.java =================================================================== --- src/java/org/apache/lucene/search/payloads/MinPayloadFunction.java (revision 830378) +++ src/java/org/apache/lucene/search/payloads/MinPayloadFunction.java (working copy) @@ -23,14 +23,17 @@ **/ public class MinPayloadFunction extends PayloadFunction { + @Override public float currentScore(int docId, String field, int start, int end, int numPayloadsSeen, float currentScore, float currentPayloadScore) { return Math.min(currentPayloadScore, currentScore); } + @Override public float docScore(int docId, String field, int numPayloadsSeen, float payloadScore) { return numPayloadsSeen > 0 ? payloadScore : 1; } + @Override public int hashCode() { final int prime = 31; int result = 1; @@ -38,6 +41,7 @@ return result; } + @Override public boolean equals(Object obj) { if (this == obj) return true; Index: src/java/org/apache/lucene/search/payloads/PayloadFunction.java =================================================================== --- src/java/org/apache/lucene/search/payloads/PayloadFunction.java (revision 830378) +++ src/java/org/apache/lucene/search/payloads/PayloadFunction.java (working copy) @@ -56,8 +56,10 @@ */ public abstract float docScore(int docId, String field, int numPayloadsSeen, float payloadScore); + @Override public abstract int hashCode(); + @Override public abstract boolean equals(Object o); } Index: src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java =================================================================== --- src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java (working copy) @@ -203,6 +203,7 @@ } // + @Override protected boolean setFreqCurrentDoc() throws IOException { if (!more) { return false; Index: src/java/org/apache/lucene/search/PhraseQueue.java =================================================================== --- src/java/org/apache/lucene/search/PhraseQueue.java (revision 830378) +++ src/java/org/apache/lucene/search/PhraseQueue.java (working copy) @@ -24,6 +24,7 @@ initialize(size); } + @Override protected final boolean lessThan(PhrasePositions pp1, PhrasePositions pp2) { if (pp1.doc == pp2.doc) if (pp1.position == pp2.position) Index: src/java/org/apache/lucene/search/PositiveScoresOnlyCollector.java =================================================================== --- src/java/org/apache/lucene/search/PositiveScoresOnlyCollector.java (revision 830378) +++ src/java/org/apache/lucene/search/PositiveScoresOnlyCollector.java (working copy) @@ -35,16 +35,19 @@ this.c = c; } + @Override public void collect(int doc) throws IOException { if (scorer.score() > 0) { c.collect(doc); } } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { c.setNextReader(reader, docBase); } + @Override public void setScorer(Scorer scorer) throws IOException { // Set a ScoreCachingWrappingScorer in case the wrapped Collector will call // score() also. @@ -52,6 +55,7 @@ c.setScorer(this.scorer); } + @Override public boolean acceptsDocsOutOfOrder() { return c.acceptsDocsOutOfOrder(); } Index: src/java/org/apache/lucene/search/PrefixFilter.java =================================================================== --- src/java/org/apache/lucene/search/PrefixFilter.java (revision 830378) +++ src/java/org/apache/lucene/search/PrefixFilter.java (working copy) @@ -32,6 +32,7 @@ public Term getPrefix() { return query.getPrefix(); } /** Prints a user-readable version of this query. */ + @Override public String toString () { StringBuilder buffer = new StringBuilder(); buffer.append("PrefixFilter("); Index: src/java/org/apache/lucene/search/PrefixQuery.java =================================================================== --- src/java/org/apache/lucene/search/PrefixQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/PrefixQuery.java (working copy) @@ -40,6 +40,7 @@ /** Returns the prefix of this query. */ public Term getPrefix() { return prefix; } + @Override protected FilteredTermEnum getEnum(IndexReader reader) throws IOException { return new PrefixTermEnum(reader, prefix); } Index: src/java/org/apache/lucene/search/PrefixTermEnum.java =================================================================== --- src/java/org/apache/lucene/search/PrefixTermEnum.java (revision 830378) +++ src/java/org/apache/lucene/search/PrefixTermEnum.java (working copy) @@ -41,10 +41,12 @@ setEnum(reader.terms(new Term(prefix.field(), prefix.text()))); } + @Override public float difference() { return 1.0f; } + @Override protected boolean endEnum() { return endEnum; } @@ -53,6 +55,7 @@ return prefix; } + @Override protected boolean termCompare(Term term) { if (term.field() == prefix.field() && term.text().startsWith(prefix.text())) { return true; Index: src/java/org/apache/lucene/search/Query.java =================================================================== --- src/java/org/apache/lucene/search/Query.java (revision 830378) +++ src/java/org/apache/lucene/search/Query.java (working copy) @@ -78,6 +78,7 @@ public abstract String toString(String field); /** Prints a query to a string. */ + @Override public String toString() { return toString(""); } @@ -204,6 +205,7 @@ } /** Returns a clone of this query. */ + @Override public Object clone() { try { return super.clone(); @@ -212,6 +214,7 @@ } } + @Override public int hashCode() { final int prime = 31; int result = 1; @@ -219,6 +222,7 @@ return result; } + @Override public boolean equals(Object obj) { if (this == obj) return true; Index: src/java/org/apache/lucene/search/QueryTermVector.java =================================================================== --- src/java/org/apache/lucene/search/QueryTermVector.java (revision 830378) +++ src/java/org/apache/lucene/search/QueryTermVector.java (working copy) @@ -106,6 +106,7 @@ } } + @Override public final String toString() { StringBuilder sb = new StringBuilder(); sb.append('{'); Index: src/java/org/apache/lucene/search/ScoreDoc.java =================================================================== --- src/java/org/apache/lucene/search/ScoreDoc.java (revision 830378) +++ src/java/org/apache/lucene/search/ScoreDoc.java (working copy) @@ -35,6 +35,7 @@ } // A convenience method for debugging. + @Override public String toString() { return "doc=" + doc + " score=" + score; } Index: src/java/org/apache/lucene/search/SimilarityDelegator.java =================================================================== --- src/java/org/apache/lucene/search/SimilarityDelegator.java (revision 830378) +++ src/java/org/apache/lucene/search/SimilarityDelegator.java (working copy) @@ -34,34 +34,42 @@ this.delegee = delegee; } + @Override public float computeNorm(String fieldName, FieldInvertState state) { return delegee.computeNorm(fieldName, state); } + @Override public float lengthNorm(String fieldName, int numTerms) { return delegee.lengthNorm(fieldName, numTerms); } + @Override public float queryNorm(float sumOfSquaredWeights) { return delegee.queryNorm(sumOfSquaredWeights); } + @Override public float tf(float freq) { return delegee.tf(freq); } + @Override public float sloppyFreq(int distance) { return delegee.sloppyFreq(distance); } + @Override public float idf(int docFreq, int numDocs) { return delegee.idf(docFreq, numDocs); } + @Override public float coord(int overlap, int maxOverlap) { return delegee.coord(overlap, maxOverlap); } + @Override public float scorePayload(int docId, String fieldName, int start, int end, byte [] payload, int offset, int length) { return delegee.scorePayload(docId, fieldName, start, end, payload, offset, length); } Index: src/java/org/apache/lucene/search/SloppyPhraseScorer.java =================================================================== --- src/java/org/apache/lucene/search/SloppyPhraseScorer.java (revision 830378) +++ src/java/org/apache/lucene/search/SloppyPhraseScorer.java (working copy) @@ -52,6 +52,7 @@ * would get same score as "g f"~2, although "c b"~2 could be matched twice. * We may want to fix this in the future (currently not, for performance reasons). */ + @Override protected final float phraseFreq() throws IOException { int end = initPhrasePositions(); Index: src/java/org/apache/lucene/search/Sort.java =================================================================== --- src/java/org/apache/lucene/search/Sort.java (revision 830378) +++ src/java/org/apache/lucene/search/Sort.java (working copy) @@ -151,6 +151,7 @@ return fields; } + @Override public String toString() { StringBuilder buffer = new StringBuilder(); @@ -164,6 +165,7 @@ } /** Returns true if o is equal to this. */ + @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Sort)) return false; @@ -172,6 +174,7 @@ } /** Returns a hash code value for this object. */ + @Override public int hashCode() { // TODO in Java 1.5: switch to Arrays.hashCode(). The // Java 1.4 workaround below calculates the same hashCode Index: src/java/org/apache/lucene/search/SortField.java =================================================================== --- src/java/org/apache/lucene/search/SortField.java (revision 830378) +++ src/java/org/apache/lucene/search/SortField.java (working copy) @@ -260,6 +260,7 @@ return reverse; } + @Override public String toString() { StringBuilder buffer = new StringBuilder(); switch (type) { @@ -323,6 +324,7 @@ * {@link FieldComparatorSource} or {@link * FieldCache.Parser} was provided, it must properly * implement equals (unless a singleton is always used). */ + @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof SortField)) return false; @@ -342,6 +344,7 @@ * FieldCache.Parser} was provided, it must properly * implement hashCode (unless a singleton is always * used). */ + @Override public int hashCode() { int hash=type^0x346565dd + Boolean.valueOf(reverse).hashCode()^0xaf5998bb; if (field != null) hash += field.hashCode()^0xff5685dd; Index: src/java/org/apache/lucene/search/SpanQueryFilter.java =================================================================== --- src/java/org/apache/lucene/search/SpanQueryFilter.java (revision 830378) +++ src/java/org/apache/lucene/search/SpanQueryFilter.java (working copy) @@ -54,11 +54,13 @@ this.query = query; } + @Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { SpanFilterResult result = bitSpans(reader); return result.getDocIdSet(); } + @Override public SpanFilterResult bitSpans(IndexReader reader) throws IOException { final OpenBitSet bits = new OpenBitSet(reader.maxDoc()); @@ -86,14 +88,17 @@ return query; } + @Override public String toString() { return "SpanQueryFilter(" + query + ")"; } + @Override public boolean equals(Object o) { return o instanceof SpanQueryFilter && this.query.equals(((SpanQueryFilter) o).query); } + @Override public int hashCode() { return query.hashCode() ^ 0x923F64B9; } Index: src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java =================================================================== --- src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java (working copy) @@ -79,6 +79,7 @@ this.field = maskedField; } + @Override public String getField() { return field; } @@ -90,22 +91,27 @@ // :NOTE: getBoost and setBoost are not proxied to the maskedQuery // ...this is done to be more consistent with things like SpanFirstQuery + @Override public Spans getSpans(IndexReader reader) throws IOException { return maskedQuery.getSpans(reader); } + @Override public void extractTerms(Set terms) { maskedQuery.extractTerms(terms); } + @Override public Weight createWeight(Searcher searcher) throws IOException { return maskedQuery.createWeight(searcher); } + @Override public Similarity getSimilarity(Searcher searcher) { return maskedQuery.getSimilarity(searcher); } + @Override public Query rewrite(IndexReader reader) throws IOException { FieldMaskingSpanQuery clone = null; @@ -122,6 +128,7 @@ } } + @Override public String toString(String field) { StringBuilder buffer = new StringBuilder(); buffer.append("mask("); @@ -133,6 +140,7 @@ return buffer.toString(); } + @Override public boolean equals(Object o) { if (!(o instanceof FieldMaskingSpanQuery)) return false; @@ -143,6 +151,7 @@ } + @Override public int hashCode() { return getMaskedQuery().hashCode() ^ getField().hashCode() Index: src/java/org/apache/lucene/search/spans/NearSpansOrdered.java =================================================================== --- src/java/org/apache/lucene/search/spans/NearSpansOrdered.java (revision 830378) +++ src/java/org/apache/lucene/search/spans/NearSpansOrdered.java (working copy) @@ -101,12 +101,15 @@ } // inherit javadocs + @Override public int doc() { return matchDoc; } // inherit javadocs + @Override public int start() { return matchStart; } // inherit javadocs + @Override public int end() { return matchEnd; } public Spans[] getSubSpans() { @@ -115,16 +118,19 @@ // TODO: Remove warning after API has been finalized // TODO: Would be nice to be able to lazy load payloads + @Override public Collection getPayload() throws IOException { return matchPayload; } // TODO: Remove warning after API has been finalized - public boolean isPayloadAvailable() { + @Override + public boolean isPayloadAvailable() { return matchPayload.isEmpty() == false; } // inherit javadocs + @Override public boolean next() throws IOException { if (firstTime) { firstTime = false; @@ -143,6 +149,7 @@ } // inherit javadocs + @Override public boolean skipTo(int target) throws IOException { if (firstTime) { firstTime = false; @@ -327,6 +334,7 @@ return match; // ordered and allowed slop } + @Override public String toString() { return getClass().getName() + "("+query.toString()+")@"+ (firstTime?"START":(more?(doc()+":"+start()+"-"+end()):"END")); Index: src/java/org/apache/lucene/search/spans/NearSpansUnordered.java =================================================================== --- src/java/org/apache/lucene/search/spans/NearSpansUnordered.java (revision 830378) +++ src/java/org/apache/lucene/search/spans/NearSpansUnordered.java (working copy) @@ -56,6 +56,7 @@ initialize(size); } + @Override protected final boolean lessThan(SpansCell spans1, SpansCell spans2) { if (spans1.doc() == spans2.doc()) { return NearSpansOrdered.docSpansOrdered(spans1, spans2); @@ -78,10 +79,12 @@ this.index = index; } + @Override public boolean next() throws IOException { return adjust(spans.next()); } + @Override public boolean skipTo(int target) throws IOException { return adjust(spans.skipTo(target)); } @@ -103,19 +106,27 @@ return condition; } + @Override public int doc() { return spans.doc(); } + + @Override public int start() { return spans.start(); } + + @Override public int end() { return spans.end(); } // TODO: Remove warning after API has been finalized + @Override public Collection getPayload() throws IOException { return new ArrayList(spans.getPayload()); } // TODO: Remove warning after API has been finalized - public boolean isPayloadAvailable() { + @Override + public boolean isPayloadAvailable() { return spans.isPayloadAvailable(); } + @Override public String toString() { return spans.toString() + "#" + index; } } @@ -138,6 +149,7 @@ public Spans[] getSubSpans() { return subSpans; } + @Override public boolean next() throws IOException { if (firstTime) { initList(true); @@ -189,6 +201,7 @@ return false; // no more matches } + @Override public boolean skipTo(int target) throws IOException { if (firstTime) { // initialize initList(false); @@ -213,8 +226,11 @@ private SpansCell min() { return queue.top(); } + @Override public int doc() { return min().doc(); } + @Override public int start() { return min().start(); } + @Override public int end() { return max.end(); } // TODO: Remove warning after API has been finalized @@ -223,6 +239,7 @@ * @return Collection of byte[] payloads * @throws IOException */ + @Override public Collection getPayload() throws IOException { Set matchPayload = new HashSet(); for (SpansCell cell = first; cell != null; cell = cell.next) { @@ -234,6 +251,7 @@ } // TODO: Remove warning after API has been finalized + @Override public boolean isPayloadAvailable() { SpansCell pointer = min(); while (pointer != null) { @@ -246,6 +264,7 @@ return false; } + @Override public String toString() { return getClass().getName() + "("+query.toString()+")@"+ (firstTime?"START":(more?(doc()+":"+start()+"-"+end()):"END")); Index: src/java/org/apache/lucene/search/spans/SpanFirstQuery.java =================================================================== --- src/java/org/apache/lucene/search/spans/SpanFirstQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/spans/SpanFirstQuery.java (working copy) @@ -46,8 +46,10 @@ /** Return the maximum end position permitted in a match. */ public int getEnd() { return end; } + @Override public String getField() { return match.getField(); } + @Override public String toString(String field) { StringBuilder buffer = new StringBuilder(); buffer.append("spanFirst("); @@ -59,20 +61,24 @@ return buffer.toString(); } + @Override public Object clone() { SpanFirstQuery spanFirstQuery = new SpanFirstQuery((SpanQuery) match.clone(), end); spanFirstQuery.setBoost(getBoost()); return spanFirstQuery; } + @Override public void extractTerms(Set terms) { match.extractTerms(terms); } + @Override public Spans getSpans(final IndexReader reader) throws IOException { return new Spans() { private Spans spans = match.getSpans(reader); + @Override public boolean next() throws IOException { while (spans.next()) { // scan to next match if (end() <= end) @@ -81,6 +87,7 @@ return false; } + @Override public boolean skipTo(int target) throws IOException { if (!spans.skipTo(target)) return false; @@ -89,11 +96,15 @@ } + @Override public int doc() { return spans.doc(); } + @Override public int start() { return spans.start(); } + @Override public int end() { return spans.end(); } // TODO: Remove warning after API has been finalized + @Override public Collection getPayload() throws IOException { ArrayList result = null; if (spans.isPayloadAvailable()) { @@ -103,10 +114,12 @@ } // TODO: Remove warning after API has been finalized - public boolean isPayloadAvailable() { + @Override + public boolean isPayloadAvailable() { return spans.isPayloadAvailable(); } + @Override public String toString() { return "spans(" + SpanFirstQuery.this.toString() + ")"; } @@ -114,6 +127,7 @@ }; } + @Override public Query rewrite(IndexReader reader) throws IOException { SpanFirstQuery clone = null; @@ -130,6 +144,7 @@ } } + @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof SpanFirstQuery)) return false; @@ -140,6 +155,7 @@ && this.getBoost() == other.getBoost(); } + @Override public int hashCode() { int h = match.hashCode(); h ^= (h << 8) | (h >>> 25); // reversible Index: src/java/org/apache/lucene/search/spans/SpanNearQuery.java =================================================================== --- src/java/org/apache/lucene/search/spans/SpanNearQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/spans/SpanNearQuery.java (working copy) @@ -79,8 +79,10 @@ /** Return true if matches are required to be in-order.*/ public boolean isInOrder() { return inOrder; } + @Override public String getField() { return field; } + @Override public void extractTerms(Set terms) { for (final SpanQuery clause : clauses) { clause.extractTerms(terms); @@ -88,6 +90,7 @@ } + @Override public String toString(String field) { StringBuilder buffer = new StringBuilder(); buffer.append("spanNear(["); @@ -108,6 +111,7 @@ return buffer.toString(); } + @Override public Spans getSpans(final IndexReader reader) throws IOException { if (clauses.size() == 0) // optimize 0-clause case return new SpanOrQuery(getClauses()).getSpans(reader); @@ -120,6 +124,7 @@ : (Spans) new NearSpansUnordered(this, reader); } + @Override public Query rewrite(IndexReader reader) throws IOException { SpanNearQuery clone = null; for (int i = 0 ; i < clauses.size(); i++) { @@ -138,6 +143,7 @@ } } + @Override public Object clone() { int sz = clauses.size(); SpanQuery[] newClauses = new SpanQuery[sz]; @@ -151,6 +157,7 @@ } /** Returns true iff o is equal to this. */ + @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof SpanNearQuery)) return false; @@ -164,6 +171,7 @@ return getBoost() == spanNearQuery.getBoost(); } + @Override public int hashCode() { int result; result = clauses.hashCode(); Index: src/java/org/apache/lucene/search/spans/SpanNotQuery.java =================================================================== --- src/java/org/apache/lucene/search/spans/SpanNotQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/spans/SpanNotQuery.java (working copy) @@ -48,10 +48,13 @@ /** Return the SpanQuery whose matches must not overlap those returned. */ public SpanQuery getExclude() { return exclude; } + @Override public String getField() { return include.getField(); } + @Override public void extractTerms(Set terms) { include.extractTerms(terms); } + @Override public String toString(String field) { StringBuilder buffer = new StringBuilder(); buffer.append("spanNot("); @@ -63,12 +66,14 @@ return buffer.toString(); } + @Override public Object clone() { SpanNotQuery spanNotQuery = new SpanNotQuery((SpanQuery)include.clone(),(SpanQuery) exclude.clone()); spanNotQuery.setBoost(getBoost()); return spanNotQuery; } + @Override public Spans getSpans(final IndexReader reader) throws IOException { return new Spans() { private Spans includeSpans = include.getSpans(reader); @@ -77,6 +82,7 @@ private Spans excludeSpans = exclude.getSpans(reader); private boolean moreExclude = excludeSpans.next(); + @Override public boolean next() throws IOException { if (moreInclude) // move to next include moreInclude = includeSpans.next(); @@ -102,6 +108,7 @@ return moreInclude; } + @Override public boolean skipTo(int target) throws IOException { if (moreInclude) // skip include moreInclude = includeSpans.skipTo(target); @@ -127,11 +134,15 @@ return next(); // scan to next match } + @Override public int doc() { return includeSpans.doc(); } + @Override public int start() { return includeSpans.start(); } + @Override public int end() { return includeSpans.end(); } // TODO: Remove warning after API has been finalized + @Override public Collection getPayload() throws IOException { ArrayList result = null; if (includeSpans.isPayloadAvailable()) { @@ -141,10 +152,12 @@ } // TODO: Remove warning after API has been finalized - public boolean isPayloadAvailable() { + @Override + public boolean isPayloadAvailable() { return includeSpans.isPayloadAvailable(); } + @Override public String toString() { return "spans(" + SpanNotQuery.this.toString() + ")"; } @@ -152,6 +165,7 @@ }; } + @Override public Query rewrite(IndexReader reader) throws IOException { SpanNotQuery clone = null; @@ -174,6 +188,7 @@ } /** Returns true iff o is equal to this. */ + @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof SpanNotQuery)) return false; @@ -184,6 +199,7 @@ && this.getBoost() == other.getBoost(); } + @Override public int hashCode() { int h = include.hashCode(); h = (h<<1) | (h >>> 31); // rotate left Index: src/java/org/apache/lucene/search/spans/SpanOrQuery.java =================================================================== --- src/java/org/apache/lucene/search/spans/SpanOrQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/spans/SpanOrQuery.java (working copy) @@ -57,14 +57,17 @@ return clauses.toArray(new SpanQuery[clauses.size()]); } + @Override public String getField() { return field; } + @Override public void extractTerms(Set terms) { for(final SpanQuery clause: clauses) { clause.extractTerms(terms); } } + @Override public Object clone() { int sz = clauses.size(); SpanQuery[] newClauses = new SpanQuery[sz]; @@ -77,6 +80,7 @@ return soq; } + @Override public Query rewrite(IndexReader reader) throws IOException { SpanOrQuery clone = null; for (int i = 0 ; i < clauses.size(); i++) { @@ -95,6 +99,7 @@ } } + @Override public String toString(String field) { StringBuilder buffer = new StringBuilder(); buffer.append("spanOr(["); @@ -111,6 +116,7 @@ return buffer.toString(); } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; @@ -123,6 +129,7 @@ return getBoost() == that.getBoost(); } + @Override public int hashCode() { int h = clauses.hashCode(); h ^= (h << 10) | (h >>> 23); @@ -136,6 +143,7 @@ initialize(size); } + @Override protected final boolean lessThan(Spans spans1, Spans spans2) { if (spans1.doc() == spans2.doc()) { if (spans1.start() == spans2.start()) { @@ -149,6 +157,7 @@ } } + @Override public Spans getSpans(final IndexReader reader) throws IOException { if (clauses.size() == 1) // optimize 1-clause case return (clauses.get(0)).getSpans(reader); @@ -169,6 +178,7 @@ return queue.size() != 0; } + @Override public boolean next() throws IOException { if (queue == null) { return initSpanQueue(-1); @@ -189,6 +199,7 @@ private Spans top() { return queue.top(); } + @Override public boolean skipTo(int target) throws IOException { if (queue == null) { return initSpanQueue(target); @@ -210,10 +221,14 @@ return next(); } + @Override public int doc() { return top().doc(); } + @Override public int start() { return top().start(); } + @Override public int end() { return top().end(); } + @Override public Collection getPayload() throws IOException { ArrayList result = null; Spans theTop = top(); @@ -223,11 +238,13 @@ return result; } - public boolean isPayloadAvailable() { + @Override + public boolean isPayloadAvailable() { Spans top = top(); return top != null && top.isPayloadAvailable(); } + @Override public String toString() { return "spans("+SpanOrQuery.this+")@"+ ((queue == null)?"START" Index: src/java/org/apache/lucene/search/spans/SpanQuery.java =================================================================== --- src/java/org/apache/lucene/search/spans/SpanQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/spans/SpanQuery.java (working copy) @@ -33,6 +33,7 @@ /** Returns the name of the field matched by this query.*/ public abstract String getField(); + @Override public Weight createWeight(Searcher searcher) throws IOException { return new SpanWeight(this, searcher); } Index: src/java/org/apache/lucene/search/spans/SpanTermQuery.java =================================================================== --- src/java/org/apache/lucene/search/spans/SpanTermQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/spans/SpanTermQuery.java (working copy) @@ -34,12 +34,15 @@ /** Return the term whose spans are matched. */ public Term getTerm() { return term; } + @Override public String getField() { return term.field(); } + @Override public void extractTerms(Set terms) { terms.add(term); } + @Override public String toString(String field) { StringBuilder buffer = new StringBuilder(); if (term.field().equals(field)) @@ -50,6 +53,7 @@ return buffer.toString(); } + @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); @@ -57,6 +61,7 @@ return result; } + @Override public boolean equals(Object obj) { if (this == obj) return true; @@ -73,6 +78,7 @@ return true; } + @Override public Spans getSpans(final IndexReader reader) throws IOException { return new TermSpans(reader.termPositions(term), term); } Index: src/java/org/apache/lucene/search/spans/TermSpans.java =================================================================== --- src/java/org/apache/lucene/search/spans/TermSpans.java (revision 830378) +++ src/java/org/apache/lucene/search/spans/TermSpans.java (working copy) @@ -43,6 +43,7 @@ doc = -1; } + @Override public boolean next() throws IOException { if (count == freq) { if (!positions.next()) { @@ -58,6 +59,7 @@ return true; } + @Override public boolean skipTo(int target) throws IOException { if (!positions.skipTo(target)) { doc = Integer.MAX_VALUE; @@ -74,19 +76,23 @@ return true; } + @Override public int doc() { return doc; } + @Override public int start() { return position; } + @Override public int end() { return position + 1; } // TODO: Remove warning after API has been finalized + @Override public Collection getPayload() throws IOException { byte [] bytes = new byte[positions.getPayloadLength()]; bytes = positions.getPayload(bytes, 0); @@ -94,10 +100,12 @@ } // TODO: Remove warning after API has been finalized - public boolean isPayloadAvailable() { + @Override + public boolean isPayloadAvailable() { return positions.isPayloadAvailable(); } + @Override public String toString() { return "spans(" + term.toString() + ")@" + (doc == -1 ? "START" : (doc == Integer.MAX_VALUE) ? "END" : doc + "-" + position); Index: src/java/org/apache/lucene/search/TermRangeTermEnum.java =================================================================== --- src/java/org/apache/lucene/search/TermRangeTermEnum.java (revision 830378) +++ src/java/org/apache/lucene/search/TermRangeTermEnum.java (working copy) @@ -93,14 +93,17 @@ setEnum(reader.terms(new Term(this.field, startTermText))); } + @Override public float difference() { return 1.0f; } + @Override protected boolean endEnum() { return endEnum; } + @Override protected boolean termCompare(Term term) { if (collator == null) { // Use Unicode code point ordering Index: src/java/org/apache/lucene/search/TimeLimitingCollector.java =================================================================== --- src/java/org/apache/lucene/search/TimeLimitingCollector.java (revision 830378) +++ src/java/org/apache/lucene/search/TimeLimitingCollector.java (working copy) @@ -70,6 +70,7 @@ this.setDaemon( true ); } + @Override public void run() { while (true) { // TODO: Use System.nanoTime() when Lucene moves to Java SE 5. @@ -194,6 +195,7 @@ * @throws TimeExceededException * if the time allowed has exceeded. */ + @Override public void collect(final int doc) throws IOException { long time = TIMER_THREAD.getMilliseconds(); if (timeout < time) { @@ -208,14 +210,17 @@ collector.collect(doc); } + @Override public void setNextReader(IndexReader reader, int base) throws IOException { collector.setNextReader(reader, base); } + @Override public void setScorer(Scorer scorer) throws IOException { collector.setScorer(scorer); } + @Override public boolean acceptsDocsOutOfOrder() { return collector.acceptsDocsOutOfOrder(); } Index: src/java/org/apache/lucene/search/TopFieldCollector.java =================================================================== --- src/java/org/apache/lucene/search/TopFieldCollector.java (revision 830378) +++ src/java/org/apache/lucene/search/TopFieldCollector.java (working copy) @@ -63,6 +63,7 @@ bottom = pq.updateTop(); } + @Override public void collect(int doc) throws IOException { ++totalHits; if (queueFull) { @@ -89,11 +90,13 @@ } } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { this.docBase = docBase; comparator.setNextReader(reader, docBase); } + @Override public void setScorer(Scorer scorer) throws IOException { comparator.setScorer(scorer); } @@ -113,6 +116,7 @@ super(queue, numHits, fillFields); } + @Override public void collect(int doc) throws IOException { ++totalHits; if (queueFull) { @@ -138,6 +142,7 @@ } } + @Override public boolean acceptsDocsOutOfOrder() { return true; } @@ -164,6 +169,7 @@ bottom = pq.updateTop(); } + @Override public void collect(int doc) throws IOException { ++totalHits; if (queueFull) { @@ -196,6 +202,7 @@ } } + @Override public void setScorer(Scorer scorer) throws IOException { this.scorer = scorer; comparator.setScorer(scorer); @@ -217,6 +224,7 @@ super(queue, numHits, fillFields); } + @Override public void collect(int doc) throws IOException { ++totalHits; if (queueFull) { @@ -248,6 +256,7 @@ } } + @Override public boolean acceptsDocsOutOfOrder() { return true; } @@ -276,6 +285,7 @@ bottom = pq.updateTop(); } + @Override public void collect(int doc) throws IOException { final float score = scorer.score(); if (score > maxScore) { @@ -307,6 +317,7 @@ } + @Override public void setScorer(Scorer scorer) throws IOException { this.scorer = scorer; super.setScorer(scorer); @@ -326,6 +337,7 @@ super(queue, numHits, fillFields); } + @Override public void collect(int doc) throws IOException { final float score = scorer.score(); if (score > maxScore) { @@ -355,6 +367,7 @@ } } + @Override public boolean acceptsDocsOutOfOrder() { return true; } @@ -383,6 +396,7 @@ bottom = pq.updateTop(); } + @Override public void collect(int doc) throws IOException { ++totalHits; if (queueFull) { @@ -429,6 +443,7 @@ } } + @Override public void setNextReader(IndexReader reader, int docBase) throws IOException { this.docBase = docBase; for (int i = 0; i < comparators.length; i++) { @@ -436,6 +451,7 @@ } } + @Override public void setScorer(Scorer scorer) throws IOException { // set the scorer on all comparators for (int i = 0; i < comparators.length; i++) { @@ -457,6 +473,7 @@ super(queue, numHits, fillFields); } + @Override public void collect(int doc) throws IOException { ++totalHits; if (queueFull) { @@ -505,6 +522,7 @@ } } + @Override public boolean acceptsDocsOutOfOrder() { return true; } @@ -532,6 +550,7 @@ bottom = pq.updateTop(); } + @Override public void collect(int doc) throws IOException { final float score = scorer.score(); if (score > maxScore) { @@ -582,6 +601,7 @@ } } + @Override public void setScorer(Scorer scorer) throws IOException { this.scorer = scorer; super.setScorer(scorer); @@ -601,6 +621,7 @@ super(queue, numHits, fillFields); } + @Override public void collect(int doc) throws IOException { final float score = scorer.score(); if (score > maxScore) { @@ -653,6 +674,7 @@ } } + @Override public boolean acceptsDocsOutOfOrder() { return true; } @@ -678,6 +700,7 @@ bottom = pq.updateTop(); } + @Override public void collect(int doc) throws IOException { ++totalHits; if (queueFull) { @@ -729,6 +752,7 @@ } } + @Override public void setScorer(Scorer scorer) throws IOException { this.scorer = scorer; super.setScorer(scorer); @@ -749,6 +773,7 @@ super(queue, numHits, fillFields); } + @Override public void collect(int doc) throws IOException { ++totalHits; if (queueFull) { @@ -802,11 +827,13 @@ } } + @Override public void setScorer(Scorer scorer) throws IOException { this.scorer = scorer; super.setScorer(scorer); } + @Override public boolean acceptsDocsOutOfOrder() { return true; } @@ -934,6 +961,7 @@ * topDocs(int, int) calls them to return the results. */ + @Override protected void populateResults(ScoreDoc[] results, int howMany) { if (fillFields) { // avoid casting if unnecessary. @@ -949,6 +977,7 @@ } } + @Override protected TopDocs newTopDocs(ScoreDoc[] results, int start) { if (results == null) { results = EMPTY_SCOREDOCS; @@ -960,6 +989,7 @@ return new TopFieldDocs(totalHits, results, ((FieldValueHitQueue) pq).getFields(), maxScore); } + @Override public boolean acceptsDocsOutOfOrder() { return false; } Index: src/java/org/apache/lucene/search/TopScoreDocCollector.java =================================================================== --- src/java/org/apache/lucene/search/TopScoreDocCollector.java (revision 830378) +++ src/java/org/apache/lucene/search/TopScoreDocCollector.java (working copy) @@ -42,6 +42,7 @@ super(numHits); } + @Override public void collect(int doc) throws IOException { float score = scorer.score(); totalHits++; @@ -56,6 +57,7 @@ pqTop = pq.updateTop(); } + @Override public boolean acceptsDocsOutOfOrder() { return false; } @@ -67,6 +69,7 @@ super(numHits); } + @Override public void collect(int doc) throws IOException { float score = scorer.score(); totalHits++; @@ -79,6 +82,7 @@ pqTop = pq.updateTop(); } + @Override public boolean acceptsDocsOutOfOrder() { return true; } @@ -116,6 +120,7 @@ pqTop = pq.top(); } + @Override protected TopDocs newTopDocs(ScoreDoc[] results, int start) { if (results == null) { return EMPTY_TOPDOCS; @@ -136,10 +141,12 @@ return new TopDocs(totalHits, results, maxScore); } + @Override public void setNextReader(IndexReader reader, int base) { docBase = base; } + @Override public void setScorer(Scorer scorer) throws IOException { this.scorer = scorer; } Index: src/java/org/apache/lucene/search/WildcardQuery.java =================================================================== --- src/java/org/apache/lucene/search/WildcardQuery.java (revision 830378) +++ src/java/org/apache/lucene/search/WildcardQuery.java (working copy) @@ -50,6 +50,7 @@ && (text.indexOf('*') == text.length() - 1); } + @Override protected FilteredTermEnum getEnum(IndexReader reader) throws IOException { if (termContainsWildcard) return new WildcardTermEnum(reader, getTerm()); Index: src/java/org/apache/lucene/search/WildcardTermEnum.java =================================================================== --- src/java/org/apache/lucene/search/WildcardTermEnum.java (revision 830378) +++ src/java/org/apache/lucene/search/WildcardTermEnum.java (working copy) @@ -65,6 +65,7 @@ setEnum(reader.terms(new Term(searchTerm.field(), pre))); } + @Override protected final boolean termCompare(Term term) { if (field == term.field()) { String searchText = term.text(); @@ -76,10 +77,12 @@ return false; } + @Override public float difference() { return 1.0f; } + @Override public final boolean endEnum() { return endEnum; } Index: src/java/org/apache/lucene/store/BufferedIndexInput.java =================================================================== --- src/java/org/apache/lucene/store/BufferedIndexInput.java (revision 830378) +++ src/java/org/apache/lucene/store/BufferedIndexInput.java (working copy) @@ -33,6 +33,7 @@ private int bufferLength = 0; // end of valid bytes private int bufferPosition = 0; // next byte to read + @Override public byte readByte() throws IOException { if (bufferPosition >= bufferLength) refill(); @@ -88,10 +89,12 @@ throw new IllegalArgumentException("bufferSize must be greater than 0 (got " + bufferSize + ")"); } + @Override public void readBytes(byte[] b, int offset, int len) throws IOException { readBytes(b, offset, len, true); } + @Override public void readBytes(byte[] b, int offset, int len, boolean useBuffer) throws IOException { if(len <= (bufferLength-bufferPosition)){ @@ -169,8 +172,10 @@ protected abstract void readInternal(byte[] b, int offset, int length) throws IOException; + @Override public long getFilePointer() { return bufferStart + bufferPosition; } + @Override public void seek(long pos) throws IOException { if (pos >= bufferStart && pos < (bufferStart + bufferLength)) bufferPosition = (int)(pos - bufferStart); // seek within buffer @@ -188,6 +193,7 @@ */ protected abstract void seekInternal(long pos) throws IOException; + @Override public Object clone() { BufferedIndexInput clone = (BufferedIndexInput)super.clone(); Index: src/java/org/apache/lucene/store/BufferedIndexOutput.java =================================================================== --- src/java/org/apache/lucene/store/BufferedIndexOutput.java (revision 830378) +++ src/java/org/apache/lucene/store/BufferedIndexOutput.java (working copy) @@ -30,6 +30,7 @@ /** Writes a single byte. * @see IndexInput#readByte() */ + @Override public void writeByte(byte b) throws IOException { if (bufferPosition >= BUFFER_SIZE) flush(); @@ -41,6 +42,7 @@ * @param length the number of bytes to write * @see IndexInput#readBytes(byte[],int,int) */ + @Override public void writeBytes(byte[] b, int offset, int length) throws IOException { int bytesLeft = BUFFER_SIZE - bufferPosition; // is there enough space in the buffer? @@ -81,6 +83,7 @@ } /** Forces any buffered output to be written. */ + @Override public void flush() throws IOException { flushBuffer(buffer, bufferPosition); bufferStart += bufferPosition; @@ -105,6 +108,7 @@ protected abstract void flushBuffer(byte[] b, int offset, int len) throws IOException; /** Closes this stream to further operations. */ + @Override public void close() throws IOException { flush(); } @@ -113,6 +117,7 @@ * occur. * @see #seek(long) */ + @Override public long getFilePointer() { return bufferStart + bufferPosition; } @@ -120,12 +125,14 @@ /** Sets current position in this file, where the next write will occur. * @see #getFilePointer() */ + @Override public void seek(long pos) throws IOException { flush(); bufferStart = pos; } /** The number of bytes in the file. */ + @Override public abstract long length() throws IOException; Index: src/java/org/apache/lucene/store/ChecksumIndexInput.java =================================================================== --- src/java/org/apache/lucene/store/ChecksumIndexInput.java (revision 830378) +++ src/java/org/apache/lucene/store/ChecksumIndexInput.java (working copy) @@ -32,12 +32,14 @@ digest = new CRC32(); } + @Override public byte readByte() throws IOException { final byte b = main.readByte(); digest.update(b); return b; } + @Override public void readBytes(byte[] b, int offset, int len) throws IOException { main.readBytes(b, offset, len); @@ -49,18 +51,22 @@ return digest.getValue(); } + @Override public void close() throws IOException { main.close(); } + @Override public long getFilePointer() { return main.getFilePointer(); } + @Override public void seek(long pos) { throw new RuntimeException("not allowed"); } + @Override public long length() { return main.length(); } Index: src/java/org/apache/lucene/store/ChecksumIndexOutput.java =================================================================== --- src/java/org/apache/lucene/store/ChecksumIndexOutput.java (revision 830378) +++ src/java/org/apache/lucene/store/ChecksumIndexOutput.java (working copy) @@ -32,11 +32,13 @@ digest = new CRC32(); } + @Override public void writeByte(byte b) throws IOException { digest.update(b); main.writeByte(b); } + @Override public void writeBytes(byte[] b, int offset, int length) throws IOException { digest.update(b, offset, length); main.writeBytes(b, offset, length); @@ -46,18 +48,22 @@ return digest.getValue(); } + @Override public void flush() throws IOException { main.flush(); } + @Override public void close() throws IOException { main.close(); } + @Override public long getFilePointer() { return main.getFilePointer(); } + @Override public void seek(long pos) { throw new RuntimeException("not allowed"); } @@ -86,6 +92,7 @@ main.writeLong(getChecksum()); } + @Override public long length() throws IOException { return main.length(); } Index: src/java/org/apache/lucene/store/FileSwitchDirectory.java =================================================================== --- src/java/org/apache/lucene/store/FileSwitchDirectory.java (revision 830378) +++ src/java/org/apache/lucene/store/FileSwitchDirectory.java (working copy) @@ -59,6 +59,7 @@ return secondaryDir; } + @Override public void close() throws IOException { if (doClose) { try { @@ -70,6 +71,7 @@ } } + @Override public String[] listAll() throws IOException { String[] primaryFiles = primaryDir.listAll(); String[] secondaryFiles = secondaryDir.listAll(); @@ -97,34 +99,42 @@ } } + @Override public boolean fileExists(String name) throws IOException { return getDirectory(name).fileExists(name); } + @Override public long fileModified(String name) throws IOException { return getDirectory(name).fileModified(name); } + @Override public void touchFile(String name) throws IOException { getDirectory(name).touchFile(name); } + @Override public void deleteFile(String name) throws IOException { getDirectory(name).deleteFile(name); } + @Override public long fileLength(String name) throws IOException { return getDirectory(name).fileLength(name); } + @Override public IndexOutput createOutput(String name) throws IOException { return getDirectory(name).createOutput(name); } + @Override public void sync(String name) throws IOException { getDirectory(name).sync(name); } + @Override public IndexInput openInput(String name) throws IOException { return getDirectory(name).openInput(name); } Index: src/java/org/apache/lucene/store/FSDirectory.java =================================================================== --- src/java/org/apache/lucene/store/FSDirectory.java (revision 830378) +++ src/java/org/apache/lucene/store/FSDirectory.java (working copy) @@ -238,12 +238,14 @@ /** Lists all files (not subdirectories) in the * directory. * @see #listAll(File) */ + @Override public String[] listAll() throws IOException { ensureOpen(); return listAll(directory); } /** Returns true iff a file with the given name exists. */ + @Override public boolean fileExists(String name) { ensureOpen(); File file = new File(directory, name); @@ -251,6 +253,7 @@ } /** Returns the time the named file was last modified. */ + @Override public long fileModified(String name) { ensureOpen(); File file = new File(directory, name); @@ -264,6 +267,7 @@ } /** Set the modified time of an existing file to now. */ + @Override public void touchFile(String name) { ensureOpen(); File file = new File(directory, name); @@ -271,6 +275,7 @@ } /** Returns the length in bytes of a file in the directory. */ + @Override public long fileLength(String name) { ensureOpen(); File file = new File(directory, name); @@ -278,6 +283,7 @@ } /** Removes an existing file in the directory. */ + @Override public void deleteFile(String name) throws IOException { ensureOpen(); File file = new File(directory, name); @@ -285,6 +291,7 @@ throw new IOException("Cannot delete " + file); } + @Override public void sync(String name) throws IOException { ensureOpen(); File fullFile = new File(directory, name); @@ -323,6 +330,7 @@ } // Inherit javadoc + @Override public IndexInput openInput(String name) throws IOException { ensureOpen(); return openInput(name, BufferedIndexInput.BUFFER_SIZE); @@ -335,6 +343,7 @@ {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; + @Override public String getLockID() { ensureOpen(); String dirName; // name to be hashed @@ -360,6 +369,7 @@ } /** Closes the store to future operations. */ + @Override public synchronized void close() { isOpen = false; } @@ -370,6 +380,7 @@ } /** For debug output. */ + @Override public String toString() { return this.getClass().getName() + "@" + directory; } Index: src/java/org/apache/lucene/store/IndexInput.java =================================================================== --- src/java/org/apache/lucene/store/IndexInput.java (revision 830378) +++ src/java/org/apache/lucene/store/IndexInput.java (working copy) @@ -217,6 +217,7 @@ * different points in the input from each other and from the stream they * were cloned from. */ + @Override public Object clone() { IndexInput clone = null; try { Index: src/java/org/apache/lucene/store/MMapDirectory.java =================================================================== --- src/java/org/apache/lucene/store/MMapDirectory.java (revision 830378) +++ src/java/org/apache/lucene/store/MMapDirectory.java (working copy) @@ -202,6 +202,7 @@ this.buffer = raf.getChannel().map(MapMode.READ_ONLY, 0, length); } + @Override public byte readByte() throws IOException { try { return buffer.get(); @@ -210,6 +211,7 @@ } } + @Override public void readBytes(byte[] b, int offset, int len) throws IOException { try { buffer.get(b, offset, len); @@ -218,18 +220,22 @@ } } + @Override public long getFilePointer() { return buffer.position(); } + @Override public void seek(long pos) throws IOException { buffer.position((int)pos); } + @Override public long length() { return length; } + @Override public Object clone() { MMapIndexInput clone = (MMapIndexInput)super.clone(); clone.isClone = true; @@ -237,6 +243,7 @@ return clone; } + @Override public void close() throws IOException { if (isClone || buffer == null) return; // unmap the buffer (if enabled) and at least unset it for GC @@ -299,6 +306,7 @@ seek(0L); } + @Override public byte readByte() throws IOException { // Performance might be improved by reading ahead into an array of // e.g. 128 bytes and readByte() from there. @@ -314,6 +322,7 @@ return curBuf.get(); } + @Override public void readBytes(byte[] b, int offset, int len) throws IOException { while (len > curAvail) { curBuf.get(b, offset, curAvail); @@ -330,10 +339,12 @@ curAvail -= len; } + @Override public long getFilePointer() { return ((long) curBufIndex * maxBufSize) + curBuf.position(); } + @Override public void seek(long pos) throws IOException { curBufIndex = (int) (pos / maxBufSize); curBuf = buffers[curBufIndex]; @@ -342,10 +353,12 @@ curAvail = bufSizes[curBufIndex] - bufOffset; } + @Override public long length() { return length; } + @Override public Object clone() { MultiMMapIndexInput clone = (MultiMMapIndexInput)super.clone(); clone.isClone = true; @@ -366,6 +379,7 @@ return clone; } + @Override public void close() throws IOException { if (isClone || buffers == null) return; try { @@ -384,6 +398,7 @@ } /** Creates an IndexInput for the file with the given name. */ + @Override public IndexInput openInput(String name, int bufferSize) throws IOException { ensureOpen(); File f = new File(getFile(), name); @@ -398,6 +413,7 @@ } /** Creates an IndexOutput for the file with the given name. */ + @Override public IndexOutput createOutput(String name) throws IOException { initOutput(name); return new SimpleFSDirectory.SimpleFSIndexOutput(new File(directory, name)); Index: src/java/org/apache/lucene/store/NativeFSLockFactory.java =================================================================== --- src/java/org/apache/lucene/store/NativeFSLockFactory.java (revision 830378) +++ src/java/org/apache/lucene/store/NativeFSLockFactory.java (working copy) @@ -122,6 +122,7 @@ setLockDir(lockDir); } + @Override public synchronized Lock makeLock(String lockName) { acquireTestLock(); if (lockPrefix != null) @@ -129,6 +130,7 @@ return new NativeFSLock(lockDir, lockName); } + @Override public void clearLock(String lockName) throws IOException { // Note that this isn't strictly required anymore // because the existence of these files does not mean @@ -175,6 +177,7 @@ return lock != null; } + @Override public synchronized boolean obtain() throws IOException { if (lockExists()) { @@ -274,6 +277,7 @@ return lockExists(); } + @Override public synchronized void release() throws IOException { if (lockExists()) { try { @@ -299,6 +303,7 @@ } } + @Override public synchronized boolean isLocked() { // The test for is isLocked is not directly possible with native file locks: @@ -318,6 +323,7 @@ } } + @Override public String toString() { return "NativeFSLock@" + path; } Index: src/java/org/apache/lucene/store/NIOFSDirectory.java =================================================================== --- src/java/org/apache/lucene/store/NIOFSDirectory.java (revision 830378) +++ src/java/org/apache/lucene/store/NIOFSDirectory.java (working copy) @@ -61,12 +61,14 @@ } /** Creates an IndexInput for the file with the given name. */ + @Override public IndexInput openInput(String name, int bufferSize) throws IOException { ensureOpen(); return new NIOFSIndexInput(new File(getFile(), name), bufferSize, getReadChunkSize()); } /** Creates an IndexOutput for the file with the given name. */ + @Override public IndexOutput createOutput(String name) throws IOException { initOutput(name); return new SimpleFSDirectory.SimpleFSIndexOutput(new File(directory, name)); @@ -86,11 +88,13 @@ channel = file.getChannel(); } + @Override protected void newBuffer(byte[] newBuffer) { super.newBuffer(newBuffer); byteBuf = ByteBuffer.wrap(newBuffer); } + @Override public void close() throws IOException { if (!isClone && file.isOpen) { // Close the channel & file @@ -102,6 +106,7 @@ } } + @Override protected void readInternal(byte[] b, int offset, int len) throws IOException { final ByteBuffer bb; Index: src/java/org/apache/lucene/store/NoLockFactory.java =================================================================== --- src/java/org/apache/lucene/store/NoLockFactory.java (revision 830378) +++ src/java/org/apache/lucene/store/NoLockFactory.java (working copy) @@ -38,25 +38,31 @@ return singleton; } + @Override public Lock makeLock(String lockName) { return singletonLock; } + @Override public void clearLock(String lockName) {}; }; class NoLock extends Lock { + @Override public boolean obtain() throws IOException { return true; } + @Override public void release() { } + @Override public boolean isLocked() { return false; } + @Override public String toString() { return "NoLock"; } Index: src/java/org/apache/lucene/store/RAMDirectory.java =================================================================== --- src/java/org/apache/lucene/store/RAMDirectory.java (revision 830378) +++ src/java/org/apache/lucene/store/RAMDirectory.java (working copy) @@ -69,6 +69,7 @@ Directory.copy(dir, this, closeDir); } + @Override public synchronized final String[] listAll() { ensureOpen(); Set fileNames = fileMap.keySet(); @@ -80,6 +81,7 @@ } /** Returns true iff the named file exists in this directory. */ + @Override public final boolean fileExists(String name) { ensureOpen(); RAMFile file; @@ -92,6 +94,7 @@ /** Returns the time the named file was last modified. * @throws IOException if the file does not exist */ + @Override public final long fileModified(String name) throws IOException { ensureOpen(); RAMFile file; @@ -106,6 +109,7 @@ /** Set the modified time of an existing file to now. * @throws IOException if the file does not exist */ + @Override public void touchFile(String name) throws IOException { ensureOpen(); RAMFile file; @@ -134,6 +138,7 @@ /** Returns the length in bytes of a file in the directory. * @throws IOException if the file does not exist */ + @Override public final long fileLength(String name) throws IOException { ensureOpen(); RAMFile file; @@ -156,6 +161,7 @@ /** Removes an existing file in the directory. * @throws IOException if the file does not exist */ + @Override public synchronized void deleteFile(String name) throws IOException { ensureOpen(); RAMFile file = fileMap.get(name); @@ -168,6 +174,7 @@ } /** Creates a new, empty file in the directory with the given name. Returns a stream writing this file. */ + @Override public IndexOutput createOutput(String name) throws IOException { ensureOpen(); RAMFile file = new RAMFile(this); @@ -183,6 +190,7 @@ } /** Returns a stream reading an existing file. */ + @Override public IndexInput openInput(String name) throws IOException { ensureOpen(); RAMFile file; @@ -195,6 +203,7 @@ } /** Closes the store to future operations, releasing associated memory. */ + @Override public void close() { isOpen = false; fileMap = null; Index: src/java/org/apache/lucene/store/RAMInputStream.java =================================================================== --- src/java/org/apache/lucene/store/RAMInputStream.java (revision 830378) +++ src/java/org/apache/lucene/store/RAMInputStream.java (working copy) @@ -49,14 +49,17 @@ currentBuffer = null; } + @Override public void close() { // nothing to do here } + @Override public long length() { return length; } + @Override public byte readByte() throws IOException { if (bufferPosition >= bufferLength) { currentBufferIndex++; @@ -65,6 +68,7 @@ return currentBuffer[bufferPosition++]; } + @Override public void readBytes(byte[] b, int offset, int len) throws IOException { while (len > 0) { if (bufferPosition >= bufferLength) { @@ -100,10 +104,12 @@ } } + @Override public long getFilePointer() { return currentBufferIndex < 0 ? 0 : bufferStart + bufferPosition; } + @Override public void seek(long pos) throws IOException { if (currentBuffer==null || pos < bufferStart || pos >= bufferStart + BUFFER_SIZE) { currentBufferIndex = (int) (pos / BUFFER_SIZE); Index: src/java/org/apache/lucene/store/RAMOutputStream.java =================================================================== --- src/java/org/apache/lucene/store/RAMOutputStream.java (revision 830378) +++ src/java/org/apache/lucene/store/RAMOutputStream.java (working copy) @@ -77,10 +77,12 @@ file.setLength(0); } + @Override public void close() throws IOException { flush(); } + @Override public void seek(long pos) throws IOException { // set the file length in case we seek back // and flush() has not been called yet @@ -93,10 +95,12 @@ bufferPosition = (int) (pos % BUFFER_SIZE); } + @Override public long length() { return file.length; } + @Override public void writeByte(byte b) throws IOException { if (bufferPosition == bufferLength) { currentBufferIndex++; @@ -105,6 +109,7 @@ currentBuffer[bufferPosition++] = b; } + @Override public void writeBytes(byte[] b, int offset, int len) throws IOException { assert b != null; while (len > 0) { @@ -140,11 +145,13 @@ } } + @Override public void flush() throws IOException { file.setLastModified(System.currentTimeMillis()); setFileLength(); } + @Override public long getFilePointer() { return currentBufferIndex < 0 ? 0 : bufferStart + bufferPosition; } Index: src/java/org/apache/lucene/store/SimpleFSDirectory.java =================================================================== --- src/java/org/apache/lucene/store/SimpleFSDirectory.java (revision 830378) +++ src/java/org/apache/lucene/store/SimpleFSDirectory.java (working copy) @@ -50,12 +50,14 @@ } /** Creates an IndexOutput for the file with the given name. */ + @Override public IndexOutput createOutput(String name) throws IOException { initOutput(name); return new SimpleFSIndexOutput(new File(directory, name)); } /** Creates an IndexInput for the file with the given name. */ + @Override public IndexInput openInput(String name, int bufferSize) throws IOException { ensureOpen(); return new SimpleFSIndexInput(new File(directory, name), bufferSize, getReadChunkSize()); @@ -76,6 +78,7 @@ length=length(); } + @Override public void close() throws IOException { if (isOpen) { isOpen=false; @@ -96,6 +99,7 @@ } /** IndexInput methods */ + @Override protected void readInternal(byte[] b, int offset, int len) throws IOException { synchronized (file) { @@ -135,18 +139,22 @@ } } + @Override public void close() throws IOException { // only close the file if this is not a clone if (!isClone) file.close(); } + @Override protected void seekInternal(long position) { } + @Override public long length() { return file.length; } + @Override public Object clone() { SimpleFSIndexInput clone = (SimpleFSIndexInput)super.clone(); clone.isClone = true; @@ -174,9 +182,11 @@ } /** output methods: */ + @Override public void flushBuffer(byte[] b, int offset, int size) throws IOException { file.write(b, offset, size); } + @Override public void close() throws IOException { // only close the file if it has not been closed yet if (isOpen) { @@ -199,13 +209,16 @@ } /** Random-access methods */ + @Override public void seek(long pos) throws IOException { super.seek(pos); file.seek(pos); } + @Override public long length() throws IOException { return file.length(); } + @Override public void setLength(long length) throws IOException { file.setLength(length); } Index: src/java/org/apache/lucene/store/SimpleFSLockFactory.java =================================================================== --- src/java/org/apache/lucene/store/SimpleFSLockFactory.java (revision 830378) +++ src/java/org/apache/lucene/store/SimpleFSLockFactory.java (working copy) @@ -80,6 +80,7 @@ setLockDir(new File(lockDirName)); } + @Override public Lock makeLock(String lockName) { if (lockPrefix != null) { lockName = lockPrefix + "-" + lockName; @@ -87,6 +88,7 @@ return new SimpleFSLock(lockDir, lockName); } + @Override public void clearLock(String lockName) throws IOException { if (lockDir.exists()) { if (lockPrefix != null) { @@ -110,6 +112,7 @@ lockFile = new File(lockDir, lockFileName); } + @Override public boolean obtain() throws IOException { // Ensure that lockDir exists and is a directory: @@ -124,15 +127,18 @@ return lockFile.createNewFile(); } + @Override public void release() throws LockReleaseFailedException { if (lockFile.exists() && !lockFile.delete()) throw new LockReleaseFailedException("failed to delete " + lockFile); } + @Override public boolean isLocked() { return lockFile.exists(); } + @Override public String toString() { return "SimpleFSLock@" + lockFile; } Index: src/java/org/apache/lucene/store/SingleInstanceLockFactory.java =================================================================== --- src/java/org/apache/lucene/store/SingleInstanceLockFactory.java (revision 830378) +++ src/java/org/apache/lucene/store/SingleInstanceLockFactory.java (working copy) @@ -35,6 +35,7 @@ private HashSet locks = new HashSet(); + @Override public Lock makeLock(String lockName) { // We do not use the LockPrefix at all, because the private // HashSet instance effectively scopes the locking to this @@ -42,6 +43,7 @@ return new SingleInstanceLock(locks, lockName); } + @Override public void clearLock(String lockName) throws IOException { synchronized(locks) { if (locks.contains(lockName)) { @@ -61,24 +63,28 @@ this.lockName = lockName; } + @Override public boolean obtain() throws IOException { synchronized(locks) { return locks.add(lockName); } } + @Override public void release() { synchronized(locks) { locks.remove(lockName); } } + @Override public boolean isLocked() { synchronized(locks) { return locks.contains(lockName); } } + @Override public String toString() { return super.toString() + ": " + lockName; } Index: src/java/org/apache/lucene/store/VerifyingLockFactory.java =================================================================== --- src/java/org/apache/lucene/store/VerifyingLockFactory.java (revision 830378) +++ src/java/org/apache/lucene/store/VerifyingLockFactory.java (working copy) @@ -68,6 +68,7 @@ } } + @Override public synchronized boolean obtain(long lockWaitTimeout) throws LockObtainFailedException, IOException { boolean obtained = lock.obtain(lockWaitTimeout); @@ -76,15 +77,18 @@ return obtained; } + @Override public synchronized boolean obtain() throws LockObtainFailedException, IOException { return lock.obtain(); } + @Override public synchronized boolean isLocked() { return lock.isLocked(); } + @Override public synchronized void release() throws IOException { if (isLocked()) { verify((byte) 0); @@ -108,10 +112,12 @@ this.port = port; } + @Override public synchronized Lock makeLock(String lockName) { return new CheckedLock(lf.makeLock(lockName)); } + @Override public synchronized void clearLock(String lockName) throws IOException { lf.clearLock(lockName); Index: src/java/org/apache/lucene/util/AttributeImpl.java =================================================================== --- src/java/org/apache/lucene/util/AttributeImpl.java (revision 830378) +++ src/java/org/apache/lucene/util/AttributeImpl.java (working copy) @@ -48,6 +48,7 @@ * * This method may be overridden by subclasses. */ + @Override public String toString() { StringBuilder buffer = new StringBuilder(); Class clazz = this.getClass(); @@ -89,6 +90,7 @@ * * see also {@link #equals(Object)} */ + @Override public abstract int hashCode(); /** @@ -97,6 +99,7 @@ * * see also {@link Object#equals(Object)} */ + @Override public abstract boolean equals(Object other); /** @@ -110,6 +113,7 @@ * Shallow clone. Subclasses must override this if they * need to clone any members deeply, */ + @Override public Object clone() { Object clone = null; try { Index: src/java/org/apache/lucene/util/AttributeSource.java =================================================================== --- src/java/org/apache/lucene/util/AttributeSource.java (revision 830378) +++ src/java/org/apache/lucene/util/AttributeSource.java (working copy) @@ -59,6 +59,7 @@ private DefaultAttributeFactory() {} + @Override public AttributeImpl createAttributeInstance(Class attClass) { try { return getClassForInterface(attClass).newInstance(); @@ -269,6 +270,7 @@ private AttributeImpl attribute; private State next; + @Override public Object clone() { State clone = new State(); clone.attribute = (AttributeImpl) attribute.clone(); @@ -352,6 +354,7 @@ } while (state != null); } + @Override public int hashCode() { int code = 0; if (hasAttributes()) { @@ -366,6 +369,7 @@ return code; } + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -407,6 +411,7 @@ return false; } + @Override public String toString() { StringBuilder sb = new StringBuilder().append('('); if (hasAttributes()) { Index: src/java/org/apache/lucene/util/AverageGuessMemoryModel.java =================================================================== --- src/java/org/apache/lucene/util/AverageGuessMemoryModel.java (revision 830378) +++ src/java/org/apache/lucene/util/AverageGuessMemoryModel.java (working copy) @@ -44,6 +44,7 @@ * * @see org.apache.lucene.util.MemoryModel#getArraySize() */ + @Override public int getArraySize() { return 16; } @@ -53,6 +54,7 @@ * * @see org.apache.lucene.util.MemoryModel#getClassSize() */ + @Override public int getClassSize() { return 8; } @@ -60,6 +62,7 @@ /* (non-Javadoc) * @see org.apache.lucene.util.MemoryModel#getPrimitiveSize(java.lang.Class) */ + @Override public int getPrimitiveSize(Class clazz) { return sizes.get(clazz).intValue(); } @@ -67,6 +70,7 @@ /* (non-Javadoc) * @see org.apache.lucene.util.MemoryModel#getReferenceSize() */ + @Override public int getReferenceSize() { return 4; } Index: src/java/org/apache/lucene/util/BitVector.java =================================================================== --- src/java/org/apache/lucene/util/BitVector.java (revision 830378) +++ src/java/org/apache/lucene/util/BitVector.java (working copy) @@ -49,6 +49,7 @@ this.size = size; } + @Override public Object clone() { byte[] copyBits = new byte[bits.length]; System.arraycopy(bits, 0, copyBits, 0, bits.length); Index: src/java/org/apache/lucene/util/DocIdBitSet.java =================================================================== --- src/java/org/apache/lucene/util/DocIdBitSet.java (revision 830378) +++ src/java/org/apache/lucene/util/DocIdBitSet.java (working copy) @@ -31,11 +31,13 @@ this.bitSet = bitSet; } + @Override public DocIdSetIterator iterator() { return new DocIdBitSetIterator(bitSet); } /** This DocIdSet implementation is cacheable. */ + @Override public boolean isCacheable() { return true; } @@ -56,10 +58,12 @@ this.docId = -1; } + @Override public int docID() { return docId; } + @Override public int nextDoc() { // (docId + 1) on next line requires -1 initial value for docNr: int d = bitSet.nextSetBit(docId + 1); @@ -68,6 +72,7 @@ return docId; } + @Override public int advance(int target) { int d = bitSet.nextSetBit(target); // -1 returned by BitSet.nextSetBit() when exhausted Index: src/java/org/apache/lucene/util/FieldCacheSanityChecker.java =================================================================== --- src/java/org/apache/lucene/util/FieldCacheSanityChecker.java (revision 830378) +++ src/java/org/apache/lucene/util/FieldCacheSanityChecker.java (working copy) @@ -297,9 +297,11 @@ this.readerKey = readerKey; this.fieldName = fieldName; } + @Override public int hashCode() { return System.identityHashCode(readerKey) * fieldName.hashCode(); } + @Override public boolean equals(Object that) { if (! (that instanceof ReaderField)) return false; @@ -307,6 +309,7 @@ return (this.readerKey == other.readerKey && this.fieldName.equals(other.fieldName)); } + @Override public String toString() { return readerKey.toString() + "+" + fieldName; } @@ -352,6 +355,7 @@ * the Type and Msg, followed by each CacheEntry.toString() on it's * own line prefaced by a tab character */ + @Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append(getType()).append(": "); @@ -383,6 +387,7 @@ private InsanityType(final String label) { this.label = label; } + @Override public String toString() { return label; } /** Index: src/java/org/apache/lucene/util/OpenBitSet.java =================================================================== --- src/java/org/apache/lucene/util/OpenBitSet.java (revision 830378) +++ src/java/org/apache/lucene/util/OpenBitSet.java (working copy) @@ -640,6 +640,7 @@ + @Override public Object clone() { try { OpenBitSet obs = (OpenBitSet)super.clone(); @@ -775,6 +776,7 @@ /** returns true if both sets have the same bits set */ + @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof OpenBitSet)) return false; @@ -800,6 +802,7 @@ } + @Override public int hashCode() { long h = 0x98761234; // something non-zero for length==0 for (int i = bits.length; --i>=0;) { Index: src/java/org/apache/lucene/util/OpenBitSetIterator.java =================================================================== --- src/java/org/apache/lucene/util/OpenBitSetIterator.java (revision 830378) +++ src/java/org/apache/lucene/util/OpenBitSetIterator.java (working copy) @@ -128,6 +128,7 @@ } ******/ + @Override public int nextDoc() { if (indexArray == 0) { if (word != 0) { @@ -155,6 +156,7 @@ return curDocId = (i<<6) + bitIndex; } + @Override public int advance(int target) { indexArray = 0; i = target >> 6; @@ -185,6 +187,7 @@ return curDocId = (i<<6) + bitIndex; } + @Override public int docID() { return curDocId; } Index: src/java/org/apache/lucene/util/Parameter.java =================================================================== --- src/java/org/apache/lucene/util/Parameter.java (revision 830378) +++ src/java/org/apache/lucene/util/Parameter.java (working copy) @@ -53,6 +53,7 @@ return getClass() + " " + name; } + @Override public String toString() { return name; } Index: src/java/org/apache/lucene/util/SortedVIntList.java =================================================================== --- src/java/org/apache/lucene/util/SortedVIntList.java (revision 830378) +++ src/java/org/apache/lucene/util/SortedVIntList.java (working copy) @@ -206,10 +206,12 @@ } } + @Override public int docID() { return doc; } + @Override public int nextDoc() { if (bytePos >= lastBytePos) { doc = NO_MORE_DOCS; @@ -220,6 +222,7 @@ return doc; } + @Override public int advance(int target) { while (bytePos < lastBytePos) { advance();