001/**
002 * Autogenerated by Avro
003 *
004 * DO NOT EDIT DIRECTLY
005 */
006package org.apache.reef.tang.implementation.avro;
007
008import org.apache.avro.specific.SpecificData;
009
010@SuppressWarnings("all")
011@org.apache.avro.specific.AvroGenerated
012public class AvroClassNode extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
013  private static final long serialVersionUID = 3782896895334838914L;
014  public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"AvroClassNode\",\"namespace\":\"org.apache.reef.tang.implementation.avro\",\"fields\":[{\"name\":\"isInjectionCandidate\",\"type\":\"boolean\"},{\"name\":\"isExternalConstructor\",\"type\":\"boolean\"},{\"name\":\"isUnit\",\"type\":\"boolean\"},{\"name\":\"injectableConstructors\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"AvroConstructorDef\",\"fields\":[{\"name\":\"fullClassName\",\"type\":\"string\"},{\"name\":\"constructorArgs\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"AvroConstructorArg\",\"fields\":[{\"name\":\"fullArgClassName\",\"type\":\"string\"},{\"name\":\"namedParameterName\",\"type\":[\"null\",\"string\"],\"default\":null},{\"name\":\"isInjectionFuture\",\"type\":\"boolean\"}]}}}]}}},{\"name\":\"otherConstructors\",\"type\":{\"type\":\"array\",\"items\":\"AvroConstructorDef\"}},{\"name\":\"implFullNames\",\"type\":{\"type\":\"array\",\"items\":\"string\"}},{\"name\":\"defaultImplementation\",\"type\":[\"null\",\"string\"],\"default\":null}]}");
015  public static org.apache.avro.Schema getClassSchema() { return SCHEMA$; }
016  @Deprecated public boolean isInjectionCandidate;
017  @Deprecated public boolean isExternalConstructor;
018  @Deprecated public boolean isUnit;
019  @Deprecated public java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> injectableConstructors;
020  @Deprecated public java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> otherConstructors;
021  @Deprecated public java.util.List<java.lang.CharSequence> implFullNames;
022  @Deprecated public java.lang.CharSequence defaultImplementation;
023
024  /**
025   * Default constructor.  Note that this does not initialize fields
026   * to their default values from the schema.  If that is desired then
027   * one should use <code>newBuilder()</code>.
028   */
029  public AvroClassNode() {}
030
031  /**
032   * All-args constructor.
033   * @param isInjectionCandidate The new value for isInjectionCandidate
034   * @param isExternalConstructor The new value for isExternalConstructor
035   * @param isUnit The new value for isUnit
036   * @param injectableConstructors The new value for injectableConstructors
037   * @param otherConstructors The new value for otherConstructors
038   * @param implFullNames The new value for implFullNames
039   * @param defaultImplementation The new value for defaultImplementation
040   */
041  public AvroClassNode(java.lang.Boolean isInjectionCandidate, java.lang.Boolean isExternalConstructor, java.lang.Boolean isUnit, java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> injectableConstructors, java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> otherConstructors, java.util.List<java.lang.CharSequence> implFullNames, java.lang.CharSequence defaultImplementation) {
042    this.isInjectionCandidate = isInjectionCandidate;
043    this.isExternalConstructor = isExternalConstructor;
044    this.isUnit = isUnit;
045    this.injectableConstructors = injectableConstructors;
046    this.otherConstructors = otherConstructors;
047    this.implFullNames = implFullNames;
048    this.defaultImplementation = defaultImplementation;
049  }
050
051  public org.apache.avro.Schema getSchema() { return SCHEMA$; }
052  // Used by DatumWriter.  Applications should not call.
053  public java.lang.Object get(int field$) {
054    switch (field$) {
055    case 0: return isInjectionCandidate;
056    case 1: return isExternalConstructor;
057    case 2: return isUnit;
058    case 3: return injectableConstructors;
059    case 4: return otherConstructors;
060    case 5: return implFullNames;
061    case 6: return defaultImplementation;
062    default: throw new org.apache.avro.AvroRuntimeException("Bad index");
063    }
064  }
065
066  // Used by DatumReader.  Applications should not call.
067  @SuppressWarnings(value="unchecked")
068  public void put(int field$, java.lang.Object value$) {
069    switch (field$) {
070    case 0: isInjectionCandidate = (java.lang.Boolean)value$; break;
071    case 1: isExternalConstructor = (java.lang.Boolean)value$; break;
072    case 2: isUnit = (java.lang.Boolean)value$; break;
073    case 3: injectableConstructors = (java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef>)value$; break;
074    case 4: otherConstructors = (java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef>)value$; break;
075    case 5: implFullNames = (java.util.List<java.lang.CharSequence>)value$; break;
076    case 6: defaultImplementation = (java.lang.CharSequence)value$; break;
077    default: throw new org.apache.avro.AvroRuntimeException("Bad index");
078    }
079  }
080
081  /**
082   * Gets the value of the 'isInjectionCandidate' field.
083   * @return The value of the 'isInjectionCandidate' field.
084   */
085  public java.lang.Boolean getIsInjectionCandidate() {
086    return isInjectionCandidate;
087  }
088
089  /**
090   * Sets the value of the 'isInjectionCandidate' field.
091   * @param value the value to set.
092   */
093  public void setIsInjectionCandidate(java.lang.Boolean value) {
094    this.isInjectionCandidate = value;
095  }
096
097  /**
098   * Gets the value of the 'isExternalConstructor' field.
099   * @return The value of the 'isExternalConstructor' field.
100   */
101  public java.lang.Boolean getIsExternalConstructor() {
102    return isExternalConstructor;
103  }
104
105  /**
106   * Sets the value of the 'isExternalConstructor' field.
107   * @param value the value to set.
108   */
109  public void setIsExternalConstructor(java.lang.Boolean value) {
110    this.isExternalConstructor = value;
111  }
112
113  /**
114   * Gets the value of the 'isUnit' field.
115   * @return The value of the 'isUnit' field.
116   */
117  public java.lang.Boolean getIsUnit() {
118    return isUnit;
119  }
120
121  /**
122   * Sets the value of the 'isUnit' field.
123   * @param value the value to set.
124   */
125  public void setIsUnit(java.lang.Boolean value) {
126    this.isUnit = value;
127  }
128
129  /**
130   * Gets the value of the 'injectableConstructors' field.
131   * @return The value of the 'injectableConstructors' field.
132   */
133  public java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> getInjectableConstructors() {
134    return injectableConstructors;
135  }
136
137  /**
138   * Sets the value of the 'injectableConstructors' field.
139   * @param value the value to set.
140   */
141  public void setInjectableConstructors(java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> value) {
142    this.injectableConstructors = value;
143  }
144
145  /**
146   * Gets the value of the 'otherConstructors' field.
147   * @return The value of the 'otherConstructors' field.
148   */
149  public java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> getOtherConstructors() {
150    return otherConstructors;
151  }
152
153  /**
154   * Sets the value of the 'otherConstructors' field.
155   * @param value the value to set.
156   */
157  public void setOtherConstructors(java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> value) {
158    this.otherConstructors = value;
159  }
160
161  /**
162   * Gets the value of the 'implFullNames' field.
163   * @return The value of the 'implFullNames' field.
164   */
165  public java.util.List<java.lang.CharSequence> getImplFullNames() {
166    return implFullNames;
167  }
168
169  /**
170   * Sets the value of the 'implFullNames' field.
171   * @param value the value to set.
172   */
173  public void setImplFullNames(java.util.List<java.lang.CharSequence> value) {
174    this.implFullNames = value;
175  }
176
177  /**
178   * Gets the value of the 'defaultImplementation' field.
179   * @return The value of the 'defaultImplementation' field.
180   */
181  public java.lang.CharSequence getDefaultImplementation() {
182    return defaultImplementation;
183  }
184
185  /**
186   * Sets the value of the 'defaultImplementation' field.
187   * @param value the value to set.
188   */
189  public void setDefaultImplementation(java.lang.CharSequence value) {
190    this.defaultImplementation = value;
191  }
192
193  /**
194   * Creates a new AvroClassNode RecordBuilder.
195   * @return A new AvroClassNode RecordBuilder
196   */
197  public static org.apache.reef.tang.implementation.avro.AvroClassNode.Builder newBuilder() {
198    return new org.apache.reef.tang.implementation.avro.AvroClassNode.Builder();
199  }
200
201  /**
202   * Creates a new AvroClassNode RecordBuilder by copying an existing Builder.
203   * @param other The existing builder to copy.
204   * @return A new AvroClassNode RecordBuilder
205   */
206  public static org.apache.reef.tang.implementation.avro.AvroClassNode.Builder newBuilder(org.apache.reef.tang.implementation.avro.AvroClassNode.Builder other) {
207    return new org.apache.reef.tang.implementation.avro.AvroClassNode.Builder(other);
208  }
209
210  /**
211   * Creates a new AvroClassNode RecordBuilder by copying an existing AvroClassNode instance.
212   * @param other The existing instance to copy.
213   * @return A new AvroClassNode RecordBuilder
214   */
215  public static org.apache.reef.tang.implementation.avro.AvroClassNode.Builder newBuilder(org.apache.reef.tang.implementation.avro.AvroClassNode other) {
216    return new org.apache.reef.tang.implementation.avro.AvroClassNode.Builder(other);
217  }
218
219  /**
220   * RecordBuilder for AvroClassNode instances.
221   */
222  public static class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase<AvroClassNode>
223    implements org.apache.avro.data.RecordBuilder<AvroClassNode> {
224
225    private boolean isInjectionCandidate;
226    private boolean isExternalConstructor;
227    private boolean isUnit;
228    private java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> injectableConstructors;
229    private java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> otherConstructors;
230    private java.util.List<java.lang.CharSequence> implFullNames;
231    private java.lang.CharSequence defaultImplementation;
232
233    /** Creates a new Builder */
234    private Builder() {
235      super(SCHEMA$);
236    }
237
238    /**
239     * Creates a Builder by copying an existing Builder.
240     * @param other The existing Builder to copy.
241     */
242    private Builder(org.apache.reef.tang.implementation.avro.AvroClassNode.Builder other) {
243      super(other);
244      if (isValidValue(fields()[0], other.isInjectionCandidate)) {
245        this.isInjectionCandidate = data().deepCopy(fields()[0].schema(), other.isInjectionCandidate);
246        fieldSetFlags()[0] = true;
247      }
248      if (isValidValue(fields()[1], other.isExternalConstructor)) {
249        this.isExternalConstructor = data().deepCopy(fields()[1].schema(), other.isExternalConstructor);
250        fieldSetFlags()[1] = true;
251      }
252      if (isValidValue(fields()[2], other.isUnit)) {
253        this.isUnit = data().deepCopy(fields()[2].schema(), other.isUnit);
254        fieldSetFlags()[2] = true;
255      }
256      if (isValidValue(fields()[3], other.injectableConstructors)) {
257        this.injectableConstructors = data().deepCopy(fields()[3].schema(), other.injectableConstructors);
258        fieldSetFlags()[3] = true;
259      }
260      if (isValidValue(fields()[4], other.otherConstructors)) {
261        this.otherConstructors = data().deepCopy(fields()[4].schema(), other.otherConstructors);
262        fieldSetFlags()[4] = true;
263      }
264      if (isValidValue(fields()[5], other.implFullNames)) {
265        this.implFullNames = data().deepCopy(fields()[5].schema(), other.implFullNames);
266        fieldSetFlags()[5] = true;
267      }
268      if (isValidValue(fields()[6], other.defaultImplementation)) {
269        this.defaultImplementation = data().deepCopy(fields()[6].schema(), other.defaultImplementation);
270        fieldSetFlags()[6] = true;
271      }
272    }
273
274    /**
275     * Creates a Builder by copying an existing AvroClassNode instance
276     * @param other The existing instance to copy.
277     */
278    private Builder(org.apache.reef.tang.implementation.avro.AvroClassNode other) {
279            super(SCHEMA$);
280      if (isValidValue(fields()[0], other.isInjectionCandidate)) {
281        this.isInjectionCandidate = data().deepCopy(fields()[0].schema(), other.isInjectionCandidate);
282        fieldSetFlags()[0] = true;
283      }
284      if (isValidValue(fields()[1], other.isExternalConstructor)) {
285        this.isExternalConstructor = data().deepCopy(fields()[1].schema(), other.isExternalConstructor);
286        fieldSetFlags()[1] = true;
287      }
288      if (isValidValue(fields()[2], other.isUnit)) {
289        this.isUnit = data().deepCopy(fields()[2].schema(), other.isUnit);
290        fieldSetFlags()[2] = true;
291      }
292      if (isValidValue(fields()[3], other.injectableConstructors)) {
293        this.injectableConstructors = data().deepCopy(fields()[3].schema(), other.injectableConstructors);
294        fieldSetFlags()[3] = true;
295      }
296      if (isValidValue(fields()[4], other.otherConstructors)) {
297        this.otherConstructors = data().deepCopy(fields()[4].schema(), other.otherConstructors);
298        fieldSetFlags()[4] = true;
299      }
300      if (isValidValue(fields()[5], other.implFullNames)) {
301        this.implFullNames = data().deepCopy(fields()[5].schema(), other.implFullNames);
302        fieldSetFlags()[5] = true;
303      }
304      if (isValidValue(fields()[6], other.defaultImplementation)) {
305        this.defaultImplementation = data().deepCopy(fields()[6].schema(), other.defaultImplementation);
306        fieldSetFlags()[6] = true;
307      }
308    }
309
310    /**
311      * Gets the value of the 'isInjectionCandidate' field.
312      * @return The value.
313      */
314    public java.lang.Boolean getIsInjectionCandidate() {
315      return isInjectionCandidate;
316    }
317
318    /**
319      * Sets the value of the 'isInjectionCandidate' field.
320      * @param value The value of 'isInjectionCandidate'.
321      * @return This builder.
322      */
323    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder setIsInjectionCandidate(boolean value) {
324      validate(fields()[0], value);
325      this.isInjectionCandidate = value;
326      fieldSetFlags()[0] = true;
327      return this;
328    }
329
330    /**
331      * Checks whether the 'isInjectionCandidate' field has been set.
332      * @return True if the 'isInjectionCandidate' field has been set, false otherwise.
333      */
334    public boolean hasIsInjectionCandidate() {
335      return fieldSetFlags()[0];
336    }
337
338
339    /**
340      * Clears the value of the 'isInjectionCandidate' field.
341      * @return This builder.
342      */
343    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder clearIsInjectionCandidate() {
344      fieldSetFlags()[0] = false;
345      return this;
346    }
347
348    /**
349      * Gets the value of the 'isExternalConstructor' field.
350      * @return The value.
351      */
352    public java.lang.Boolean getIsExternalConstructor() {
353      return isExternalConstructor;
354    }
355
356    /**
357      * Sets the value of the 'isExternalConstructor' field.
358      * @param value The value of 'isExternalConstructor'.
359      * @return This builder.
360      */
361    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder setIsExternalConstructor(boolean value) {
362      validate(fields()[1], value);
363      this.isExternalConstructor = value;
364      fieldSetFlags()[1] = true;
365      return this;
366    }
367
368    /**
369      * Checks whether the 'isExternalConstructor' field has been set.
370      * @return True if the 'isExternalConstructor' field has been set, false otherwise.
371      */
372    public boolean hasIsExternalConstructor() {
373      return fieldSetFlags()[1];
374    }
375
376
377    /**
378      * Clears the value of the 'isExternalConstructor' field.
379      * @return This builder.
380      */
381    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder clearIsExternalConstructor() {
382      fieldSetFlags()[1] = false;
383      return this;
384    }
385
386    /**
387      * Gets the value of the 'isUnit' field.
388      * @return The value.
389      */
390    public java.lang.Boolean getIsUnit() {
391      return isUnit;
392    }
393
394    /**
395      * Sets the value of the 'isUnit' field.
396      * @param value The value of 'isUnit'.
397      * @return This builder.
398      */
399    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder setIsUnit(boolean value) {
400      validate(fields()[2], value);
401      this.isUnit = value;
402      fieldSetFlags()[2] = true;
403      return this;
404    }
405
406    /**
407      * Checks whether the 'isUnit' field has been set.
408      * @return True if the 'isUnit' field has been set, false otherwise.
409      */
410    public boolean hasIsUnit() {
411      return fieldSetFlags()[2];
412    }
413
414
415    /**
416      * Clears the value of the 'isUnit' field.
417      * @return This builder.
418      */
419    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder clearIsUnit() {
420      fieldSetFlags()[2] = false;
421      return this;
422    }
423
424    /**
425      * Gets the value of the 'injectableConstructors' field.
426      * @return The value.
427      */
428    public java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> getInjectableConstructors() {
429      return injectableConstructors;
430    }
431
432    /**
433      * Sets the value of the 'injectableConstructors' field.
434      * @param value The value of 'injectableConstructors'.
435      * @return This builder.
436      */
437    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder setInjectableConstructors(java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> value) {
438      validate(fields()[3], value);
439      this.injectableConstructors = value;
440      fieldSetFlags()[3] = true;
441      return this;
442    }
443
444    /**
445      * Checks whether the 'injectableConstructors' field has been set.
446      * @return True if the 'injectableConstructors' field has been set, false otherwise.
447      */
448    public boolean hasInjectableConstructors() {
449      return fieldSetFlags()[3];
450    }
451
452
453    /**
454      * Clears the value of the 'injectableConstructors' field.
455      * @return This builder.
456      */
457    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder clearInjectableConstructors() {
458      injectableConstructors = null;
459      fieldSetFlags()[3] = false;
460      return this;
461    }
462
463    /**
464      * Gets the value of the 'otherConstructors' field.
465      * @return The value.
466      */
467    public java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> getOtherConstructors() {
468      return otherConstructors;
469    }
470
471    /**
472      * Sets the value of the 'otherConstructors' field.
473      * @param value The value of 'otherConstructors'.
474      * @return This builder.
475      */
476    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder setOtherConstructors(java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef> value) {
477      validate(fields()[4], value);
478      this.otherConstructors = value;
479      fieldSetFlags()[4] = true;
480      return this;
481    }
482
483    /**
484      * Checks whether the 'otherConstructors' field has been set.
485      * @return True if the 'otherConstructors' field has been set, false otherwise.
486      */
487    public boolean hasOtherConstructors() {
488      return fieldSetFlags()[4];
489    }
490
491
492    /**
493      * Clears the value of the 'otherConstructors' field.
494      * @return This builder.
495      */
496    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder clearOtherConstructors() {
497      otherConstructors = null;
498      fieldSetFlags()[4] = false;
499      return this;
500    }
501
502    /**
503      * Gets the value of the 'implFullNames' field.
504      * @return The value.
505      */
506    public java.util.List<java.lang.CharSequence> getImplFullNames() {
507      return implFullNames;
508    }
509
510    /**
511      * Sets the value of the 'implFullNames' field.
512      * @param value The value of 'implFullNames'.
513      * @return This builder.
514      */
515    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder setImplFullNames(java.util.List<java.lang.CharSequence> value) {
516      validate(fields()[5], value);
517      this.implFullNames = value;
518      fieldSetFlags()[5] = true;
519      return this;
520    }
521
522    /**
523      * Checks whether the 'implFullNames' field has been set.
524      * @return True if the 'implFullNames' field has been set, false otherwise.
525      */
526    public boolean hasImplFullNames() {
527      return fieldSetFlags()[5];
528    }
529
530
531    /**
532      * Clears the value of the 'implFullNames' field.
533      * @return This builder.
534      */
535    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder clearImplFullNames() {
536      implFullNames = null;
537      fieldSetFlags()[5] = false;
538      return this;
539    }
540
541    /**
542      * Gets the value of the 'defaultImplementation' field.
543      * @return The value.
544      */
545    public java.lang.CharSequence getDefaultImplementation() {
546      return defaultImplementation;
547    }
548
549    /**
550      * Sets the value of the 'defaultImplementation' field.
551      * @param value The value of 'defaultImplementation'.
552      * @return This builder.
553      */
554    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder setDefaultImplementation(java.lang.CharSequence value) {
555      validate(fields()[6], value);
556      this.defaultImplementation = value;
557      fieldSetFlags()[6] = true;
558      return this;
559    }
560
561    /**
562      * Checks whether the 'defaultImplementation' field has been set.
563      * @return True if the 'defaultImplementation' field has been set, false otherwise.
564      */
565    public boolean hasDefaultImplementation() {
566      return fieldSetFlags()[6];
567    }
568
569
570    /**
571      * Clears the value of the 'defaultImplementation' field.
572      * @return This builder.
573      */
574    public org.apache.reef.tang.implementation.avro.AvroClassNode.Builder clearDefaultImplementation() {
575      defaultImplementation = null;
576      fieldSetFlags()[6] = false;
577      return this;
578    }
579
580    @Override
581    public AvroClassNode build() {
582      try {
583        AvroClassNode record = new AvroClassNode();
584        record.isInjectionCandidate = fieldSetFlags()[0] ? this.isInjectionCandidate : (java.lang.Boolean) defaultValue(fields()[0]);
585        record.isExternalConstructor = fieldSetFlags()[1] ? this.isExternalConstructor : (java.lang.Boolean) defaultValue(fields()[1]);
586        record.isUnit = fieldSetFlags()[2] ? this.isUnit : (java.lang.Boolean) defaultValue(fields()[2]);
587        record.injectableConstructors = fieldSetFlags()[3] ? this.injectableConstructors : (java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef>) defaultValue(fields()[3]);
588        record.otherConstructors = fieldSetFlags()[4] ? this.otherConstructors : (java.util.List<org.apache.reef.tang.implementation.avro.AvroConstructorDef>) defaultValue(fields()[4]);
589        record.implFullNames = fieldSetFlags()[5] ? this.implFullNames : (java.util.List<java.lang.CharSequence>) defaultValue(fields()[5]);
590        record.defaultImplementation = fieldSetFlags()[6] ? this.defaultImplementation : (java.lang.CharSequence) defaultValue(fields()[6]);
591        return record;
592      } catch (Exception e) {
593        throw new org.apache.avro.AvroRuntimeException(e);
594      }
595    }
596  }
597
598  private static final org.apache.avro.io.DatumWriter
599    WRITER$ = new org.apache.avro.specific.SpecificDatumWriter(SCHEMA$);
600
601  @Override public void writeExternal(java.io.ObjectOutput out)
602    throws java.io.IOException {
603    WRITER$.write(this, SpecificData.getEncoder(out));
604  }
605
606  private static final org.apache.avro.io.DatumReader
607    READER$ = new org.apache.avro.specific.SpecificDatumReader(SCHEMA$);
608
609  @Override public void readExternal(java.io.ObjectInput in)
610    throws java.io.IOException {
611    READER$.read(this, SpecificData.getDecoder(in));
612  }
613
614}