anchor.diff:                   org.apache.lucene.index.Payload,
                    org.apache.lucene.analysis.CharReader,
                    org.apache.lucene.analysis.CharStream,
  +                 org.apache.lucene.analysis.tokenattributes.*,
                    org.apache.solr.analysis.CharFilterFactory,
                    org.apache.solr.analysis.TokenFilterFactory,
                    org.apache.solr.analysis.TokenizerChain,
  
positive.code:     }
  
      public boolean equals(Object o) {
        return ((Tok)o).token.termText().equals(token.termText());
      }
      public int hashCode() {
        return token.termText().hashCode();
      }
      public String toString() {
        return token.termText();
      }
    }
  
  
negative.code: 
           final Iterator<Token> iter = tokens.iterator();
           tstream = filtfac.create( new TokenStream() {
             TermAttribute termAtt = (TermAttribute) addAttribute(TermAttribute.class);
             OffsetAttribute offsetAtt = (OffsetAttribute) addAttribute (OffsetAttribute.class);
             TypeAttribute typeAtt = (TypeAttribute) addAttribute (TypeAttribute.class);
             FlagsAttribute flagsAtt = (FlagsAttribute) addAttribute (FlagsAttribute.class);
             PayloadAttribute payloadAtt = (PayloadAttribute) addAttribute (PayloadAttribute.class);
             PositionIncrementAttribute posIncAtt = (PositionIncrementAttribute) addAttribute (PositionIncrementAttribute.class);
             
             public boolean incrementToken() throws IOException {
               if (iter.hasNext()) {
                 Token token = iter.next();
                 termAtt.setTermBuffer(token.termBuffer(), 0, token.termLength());
                 offsetAtt.setOffset(token.startOffset(), token.endOffset());
                 typeAtt.setType(token.type());
                 flagsAtt.setFlags(token.getFlags());
                 posIncAtt.setPositionIncrement(token.getPositionIncrement());
                 payloadAtt.setPayload(token.getPayload());
                 return true;
               } else {
                 return false;
               }
             }
            }
           );
  