Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-3777

trapping overloaded ctors/setters in Field/NumericField/DocValuesField

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 4.0-ALPHA
    • 4.0-ALPHA
    • None
    • None
    • New

    Description

      In trunk, these apis let you easily create a field, but my concern is this:

      public NumericField(String name, int value)
      public NumericField(String name, long value)
      ..
      public Field(String name, int value, FieldType type)
      public Field(String name, long value, FieldType type)
      ..
      public void setValue(int value)
      public void setValue(long value)
      ..
      public DocValuesField(String name, int value, DocValues.Type docValueType)
      public DocValuesField(String name, long value, DocValues.Type docValueType)
      

      I really don't like overloaded ctors/setters where the compiler can type-promote you,
      I think it makes the apis hard to use.

      Instead for the setters I think we sohuld have setIntValue, setLongValue, ...
      For the ctors, I see two other options:

      1. factories like DocValuesField.newIntField()
      2. subclasses like IntField

      I don't have any patch for this, but I think we should discuss and fix before these apis are released.

      Attachments

        1. LUCENE-3777.patch
          177 kB
          Michael McCandless
        2. LUCENE-3777.patch
          86 kB
          Michael McCandless

        Activity

          People

            mikemccand Michael McCandless
            rcmuir Robert Muir
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: