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 > > >
