Lucene - Core
  1. Lucene - Core
  2. LUCENE-2374

Add reflection API to AttributeSource/AttributeImpl


    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.1, 4.0-ALPHA
    • Component/s: modules/analysis
    • Labels:
    • Lucene Fields:
      New, Patch Available


      AttributeSource/TokenStream inspection in Solr needs to have some insight into the contents of AttributeImpls. As LUCENE-2302 has some problems with toString() [which is not structured and conflicts with CharSequence's definition for CharTermAttribute], I propose an simple API that get a default implementation in AttributeImpl (just like toString() current):

      • Iterator<Map.Entry<String,?>> AttributeImpl.contentsIterator() returns an iterator (for most attributes its a singleton) of a key-value pair, e.g. "term">"foobar","startOffset">Integer.valueOf(0),...
      • AttributeSource gets the same method, it just concat the iterators of each getAttributeImplsIterator() AttributeImpl

      No backwards problems occur, as the default toString() method will work like before (it just gets iterator and lists), but we simply remove the documentation for the format. (Char)TermAttribute gets a special impl fo toString() according to CharSequence and a corresponding iterator.

      I also want to remove the abstract hashCode() and equals() methods from AttributeImpl, as they are not needed and just create work for the implementor.

      1. LUCENE-2374-3x.patch
        18 kB
        Uwe Schindler
      2. LUCENE-2374-3x.patch
        33 kB
        Uwe Schindler
      3. shot1.png
        163 kB
        Uwe Schindler
      4. shot2.png
        141 kB
        Uwe Schindler
      5. shot3.png
        134 kB
        Uwe Schindler
      6. shot4.png
        137 kB
        Uwe Schindler
      7. LUCENE-2374-3x.patch
        52 kB
        Uwe Schindler
      8. LUCENE-2374-3x.patch
        62 kB
        Uwe Schindler
      9. LUCENE-2374-3x.patch
        79 kB
        Uwe Schindler
      10. LUCENE-2374-3x.patch
        81 kB
        Uwe Schindler
      11. LUCENE-2374.patch
        77 kB
        Uwe Schindler
      12. LUCENE-2374.patch
        78 kB
        Uwe Schindler
      13. LUCENE-2374.patch
        78 kB
        Uwe Schindler

        Issue Links



            • Assignee:
              Uwe Schindler
              Uwe Schindler
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: