Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Avro >> mail # user >> Could specific records implement the generic API as well?


Copy link to this message
-
Re: Could specific records implement the generic API as well?
I created https://issues.apache.org/jira/browse/AVRO-1299 and posted a
patch to let SpecificRecordBase implement GenericRecord.
As I think about it, it seems to me that SpecificRecordBuilderBase should
also implement GenericRecord.

C.
On Mon, Apr 15, 2013 at 9:39 PM, Christophe Taton <[EMAIL PROTECTED]>wrote:

> On Mon, Apr 15, 2013 at 9:19 PM, Scott Carey <[EMAIL PROTECTED]>wrote:
>
>> 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?
>>
>
> That's fair. Getters only would work for what I need, assuming setters
> will eventually come through builders.
>
> And Immutable records would be great!
>
> C.
>
> On 4/15/13 3:43 PM, "Doug Cutting" <[EMAIL PROTECTED]> wrote:
>>
>> >On Mon, Apr 15, 2013 at 2:21 PM, Christophe Taton <[EMAIL PROTECTED]>
>> >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
>>
>>
>>
>