GenericData.deepCopy gives me an instance of GenericData.Record. How do I convert this to an instance of my specific data (e.g GraphNodeData).
It looks like the issue with the @override statement for the build might have something to do with the fact that the specification for @Override changed in jdk1.6 (see this post) http://stackoverflow.com/questions/2335655/why-is-javac-failing-on-override-annotation. However, I'm using java version 1.6.0_27 so I'm not sure why its not working for me. To clarify, the statement GraphNodeData copy = GraphNodeData.newBuilder(this.data).build() Compiles fine, but generates a runtime warning The method build() of type GraphNodeData.Builder must override a superclass method J On Sun, Mar 11, 2012 at 7:37 PM, Jeremy Lewi <[email protected]> wrote: > Thanks. > > J > > > On Sun, Mar 11, 2012 at 6:20 PM, James Baldassari > <[email protected]>wrote: > >> GenericData is a singleton. You can use the static method >> GenericData#get() to obtain the singleton instance: >> >> >> http://avro.apache.org/docs/current/api/java/org/apache/avro/generic/GenericData.html#get() >> >> -James >> >> >> On Sun, Mar 11, 2012 at 5:22 PM, Jeremy Lewi <[email protected]> wrote: >> >>> Yes. How do I instantiate an instance of GenericData though? It looks >>> like its constructors are protected. >>> >>> Thanks >>> J >>> >>> >>> On Sun, Mar 11, 2012 at 1:52 PM, <[email protected]> wrote: >>> >>>> There is deepcopy method on genericdata I think >>>> >>>> I used it to create deep copies of the avro data >>>> >>>> Sent from my iPhone >>>> >>>> On Mar 11, 2012, at 3:40 PM, Jeremy Lewi <[email protected]> wrote: >>>> >>>> > Hi, >>>> > >>>> > In java, I'd like to make a deep copy of an avro record. >>>> > >>>> > Looking at the code that the avro compiler generates it looks like >>>> the way to do this for records of type GraphNodeData >>>> > would be >>>> > GraphNodeData copy = GraphNodeData.newBuilder(existing_value).build(); >>>> > >>>> > where GraphNodeData is the name of my avro record. >>>> > >>>> > Unfortunately, this generates a compile time error because >>>> > the method GraphNodeData.build is decorated with "@Override" but it >>>> apparently does not override any method. >>>> > Deleting "@Override" makes the code work. Unfortunately, I would have >>>> to do this every time I regenerated my avro classes from the schema. >>>> > >>>> > Am I doing something wrong or should I file a bug? >>>> > >>>> > Thanks >>>> > J >>>> >>> >>> >> >
