I would like to figure out how to make SpecificRecord and GenericRecord
immutable in the longer term (or as an option with the code generation
and/or builder).  The builder is the first step, but setters are the
enemy.  Is there a way to do this that does not introduce new mutators for
all SpecificRecords?



On 4/15/13 3:43 PM, "Doug Cutting" <cutt...@apache.org> wrote:

>On Mon, Apr 15, 2013 at 2:21 PM, Christophe Taton <ta...@wibidata.com>
>wrote:
>> If you think it's a meaningful addition, I'm happy to make the change.
>
>The two methods I wrote above could be added to SpecificRecordBase and
>it could then be declared to implement GenericRecord.
>
>I think GenericRecordBuilder could be used to build specific records
>with a few additional changes:
> - change the type of the 'record' field from GenericData.Record to
>GenericRecord.
> - replace the call to 'new GenericData.Record()' to
>'(GenericRecord)data().newRecord(null, schema())'
> - add a constructor that accepts a GenericData instance, instead of
>calling GenericData.get().
>
>Then you could use new GenericRecordBuilder(SpecificData.get(),
>schema) to create specific records.
>
>Doug


Reply via email to