text: /**
   * Autogenerated by Avro
   * 
   * DO NOT EDIT DIRECTLY
   */
  package org.apache.hadoop.hive.hbase.avro;  
  @SuppressWarnings("all")
  @org.apache.avro.specific.AvroGenerated
  public class Employee extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
    public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"Employee\",\"namespace\":\"org.apache.hadoop.hive.hbase.avro\",\"fields\":[{\"name\":\"employeeName\",\"type\":\"string\"},{\"name\":\"employeeID\",\"type\":\"long\"},{\"name\":\"age\",\"type\":\"long\"},{\"name\":\"gender\",\"type\":{\"type\":\"enum\",\"name\":\"Gender\",\"symbols\":[\"MALE\",\"FEMALE\"]}},{\"name\":\"contactInfo\",\"type\":{\"type\":\"record\",\"name\":\"ContactInfo\",\"fields\":[{\"name\":\"address\",\"type\":[{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"Address\",\"fields\":[{\"name\":\"address1\",\"type\":\"string\"},{\"name\":\"address2\",\"type\":\"string\"},{\"name\":\"city\",\"type\":\"string\"},{\"name\":\"zipcode\",\"type\":\"long\"},{\"name\":\"county\",\"type\":[{\"type\":\"record\",\"name\":\"HomePhone\",\"fields\":[{\"name\":\"areaCode\",\"type\":\"long\"},{\"name\":\"number\",\"type\":\"long\"}]},{\"type\":\"record\",\"name\":\"OfficePhone\",\"fields\":[{\"name\":\"areaCode\",\"type\":\"long\"},{\"name\":\"number\",\"type\":\"long\"}]},\"string\",\"null\"]},{\"name\":\"aliases\",\"type\":[{\"type\":\"array\",\"items\":\"string\"},\"null\"]},{\"name\":\"metadata\",\"type\":[\"null\",{\"type\":\"map\",\"values\":\"string\"}]}]}},\"null\"]},{\"name\":\"homePhone\",\"type\":\"HomePhone\"},{\"name\":\"officePhone\",\"type\":\"OfficePhone\"}]}}]}");
    public static org.apache.avro.Schema getClassSchema() { return SCHEMA$; }
    @Deprecated public java.lang.CharSequence employeeName;
    @Deprecated public long employeeID;
    @Deprecated public long age;
    @Deprecated public org.apache.hadoop.hive.hbase.avro.Gender gender;
    @Deprecated public org.apache.hadoop.hive.hbase.avro.ContactInfo contactInfo;
  
    /**
     * Default constructor.  Note that this does not initialize fields
     * to their default values from the schema.  If that is desired then
     * one should use <code>newBuilder()</code>. 
     */
    public Employee() {}
  
    /**
     * All-args constructor.
     */
    public Employee(java.lang.CharSequence employeeName, java.lang.Long employeeID, java.lang.Long age, org.apache.hadoop.hive.hbase.avro.Gender gender, org.apache.hadoop.hive.hbase.avro.ContactInfo contactInfo) {
      this.employeeName = employeeName;
      this.employeeID = employeeID;
      this.age = age;
      this.gender = gender;
      this.contactInfo = contactInfo;
    }
  
    @Override
    public org.apache.avro.Schema getSchema() { return SCHEMA$; }
    // Used by DatumWriter.  Applications should not call. 
    @Override
    public java.lang.Object get(int field$) {
      switch (field$) {
      case 0: return employeeName;
      case 1: return employeeID;
      case 2: return age;
      case 3: return gender;
      case 4: return contactInfo;
      default: throw new org.apache.avro.AvroRuntimeException("Bad index");
      }
    }
    // Used by DatumReader.  Applications should not call. 
    @Override
    @SuppressWarnings(value="unchecked")
    public void put(int field$, java.lang.Object value$) {
      switch (field$) {
      case 0: employeeName = (java.lang.CharSequence)value$; break;
      case 1: employeeID = (java.lang.Long)value$; break;
      case 2: age = (java.lang.Long)value$; break;
      case 3: gender = (org.apache.hadoop.hive.hbase.avro.Gender)value$; break;
      case 4: contactInfo = (org.apache.hadoop.hive.hbase.avro.ContactInfo)value$; break;
      default: throw new org.apache.avro.AvroRuntimeException("Bad index");
      }
    }
  
    /**
     * Gets the value of the 'employeeName' field.
     */
    public java.lang.CharSequence getEmployeeName() {
      return employeeName;
    }
  
    /**
     * Sets the value of the 'employeeName' field.
     * @param value the value to set.
     */
    public void setEmployeeName(java.lang.CharSequence value) {
      this.employeeName = value;
    }
  
    /**
     * Gets the value of the 'employeeID' field.
     */
    public java.lang.Long getEmployeeID() {
      return employeeID;
    }
  
    /**
     * Sets the value of the 'employeeID' field.
     * @param value the value to set.
     */
    public void setEmployeeID(java.lang.Long value) {
      this.employeeID = value;
    }
  
    /**
     * Gets the value of the 'age' field.
     */
    public java.lang.Long getAge() {
      return age;
    }
  
    /**
     * Sets the value of the 'age' field.
     * @param value the value to set.
     */
    public void setAge(java.lang.Long value) {
      this.age = value;
    }
  
    /**
     * Gets the value of the 'gender' field.
     */
    public org.apache.hadoop.hive.hbase.avro.Gender getGender() {
      return gender;
    }
  
    /**
     * Sets the value of the 'gender' field.
     * @param value the value to set.
     */
    public void setGender(org.apache.hadoop.hive.hbase.avro.Gender value) {
      this.gender = value;
    }
  
    /**
     * Gets the value of the 'contactInfo' field.
     */
    public org.apache.hadoop.hive.hbase.avro.ContactInfo getContactInfo() {
      return contactInfo;
    }
  
    /**
     * Sets the value of the 'contactInfo' field.
     * @param value the value to set.
     */
    public void setContactInfo(org.apache.hadoop.hive.hbase.avro.ContactInfo value) {
      this.contactInfo = value;
    }
  
    /** Creates a new Employee RecordBuilder */
    public static org.apache.hadoop.hive.hbase.avro.Employee.Builder newBuilder() {
      return new org.apache.hadoop.hive.hbase.avro.Employee.Builder();
    }
    
    /** Creates a new Employee RecordBuilder by copying an existing Builder */
    public static org.apache.hadoop.hive.hbase.avro.Employee.Builder newBuilder(org.apache.hadoop.hive.hbase.avro.Employee.Builder other) {
      return new org.apache.hadoop.hive.hbase.avro.Employee.Builder(other);
    }
    
    /** Creates a new Employee RecordBuilder by copying an existing Employee instance */
    public static org.apache.hadoop.hive.hbase.avro.Employee.Builder newBuilder(org.apache.hadoop.hive.hbase.avro.Employee other) {
      return new org.apache.hadoop.hive.hbase.avro.Employee.Builder(other);
    }
    
    /**
     * RecordBuilder for Employee instances.
     */
    public static class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase<Employee>
      implements org.apache.avro.data.RecordBuilder<Employee> {
  
      private java.lang.CharSequence employeeName;
      private long employeeID;
      private long age;
      private org.apache.hadoop.hive.hbase.avro.Gender gender;
      private org.apache.hadoop.hive.hbase.avro.ContactInfo contactInfo;
  
      /** Creates a new Builder */
      private Builder() {
        super(org.apache.hadoop.hive.hbase.avro.Employee.SCHEMA$);
      }
      
      /** Creates a Builder by copying an existing Builder */
      private Builder(org.apache.hadoop.hive.hbase.avro.Employee.Builder other) {
        super(other);
        if (isValidValue(fields()[0], other.employeeName)) {
          this.employeeName = data().deepCopy(fields()[0].schema(), other.employeeName);
          fieldSetFlags()[0] = true;
        }
        if (isValidValue(fields()[1], other.employeeID)) {
          this.employeeID = data().deepCopy(fields()[1].schema(), other.employeeID);
          fieldSetFlags()[1] = true;
        }
        if (isValidValue(fields()[2], other.age)) {
          this.age = data().deepCopy(fields()[2].schema(), other.age);
          fieldSetFlags()[2] = true;
        }
        if (isValidValue(fields()[3], other.gender)) {
          this.gender = data().deepCopy(fields()[3].schema(), other.gender);
          fieldSetFlags()[3] = true;
        }
        if (isValidValue(fields()[4], other.contactInfo)) {
          this.contactInfo = data().deepCopy(fields()[4].schema(), other.contactInfo);
          fieldSetFlags()[4] = true;
        }
      }
      
      /** Creates a Builder by copying an existing Employee instance */
      private Builder(org.apache.hadoop.hive.hbase.avro.Employee other) {
              super(org.apache.hadoop.hive.hbase.avro.Employee.SCHEMA$);
        if (isValidValue(fields()[0], other.employeeName)) {
          this.employeeName = data().deepCopy(fields()[0].schema(), other.employeeName);
          fieldSetFlags()[0] = true;
        }
        if (isValidValue(fields()[1], other.employeeID)) {
          this.employeeID = data().deepCopy(fields()[1].schema(), other.employeeID);
          fieldSetFlags()[1] = true;
        }
        if (isValidValue(fields()[2], other.age)) {
          this.age = data().deepCopy(fields()[2].schema(), other.age);
          fieldSetFlags()[2] = true;
        }
        if (isValidValue(fields()[3], other.gender)) {
          this.gender = data().deepCopy(fields()[3].schema(), other.gender);
          fieldSetFlags()[3] = true;
        }
        if (isValidValue(fields()[4], other.contactInfo)) {
          this.contactInfo = data().deepCopy(fields()[4].schema(), other.contactInfo);
          fieldSetFlags()[4] = true;
        }
      }
  
      /** Gets the value of the 'employeeName' field */
      public java.lang.CharSequence getEmployeeName() {
        return employeeName;
      }
      
      /** Sets the value of the 'employeeName' field */
      public org.apache.hadoop.hive.hbase.avro.Employee.Builder setEmployeeName(java.lang.CharSequence value) {
        validate(fields()[0], value);
        this.employeeName = value;
        fieldSetFlags()[0] = true;
        return this; 
      }
      
      /** Checks whether the 'employeeName' field has been set */
      public boolean hasEmployeeName() {
        return fieldSetFlags()[0];
      }
      
      /** Clears the value of the 'employeeName' field */
      public org.apache.hadoop.hive.hbase.avro.Employee.Builder clearEmployeeName() {
        employeeName = null;
        fieldSetFlags()[0] = false;
        return this;
      }
  
      /** Gets the value of the 'employeeID' field */
      public java.lang.Long getEmployeeID() {
        return employeeID;
      }
      
      /** Sets the value of the 'employeeID' field */
      public org.apache.hadoop.hive.hbase.avro.Employee.Builder setEmployeeID(long value) {
        validate(fields()[1], value);
        this.employeeID = value;
        fieldSetFlags()[1] = true;
        return this; 
      }
      
      /** Checks whether the 'employeeID' field has been set */
      public boolean hasEmployeeID() {
        return fieldSetFlags()[1];
      }
      
      /** Clears the value of the 'employeeID' field */
      public org.apache.hadoop.hive.hbase.avro.Employee.Builder clearEmployeeID() {
        fieldSetFlags()[1] = false;
        return this;
      }
  
      /** Gets the value of the 'age' field */
      public java.lang.Long getAge() {
        return age;
      }
      
      /** Sets the value of the 'age' field */
      public org.apache.hadoop.hive.hbase.avro.Employee.Builder setAge(long value) {
        validate(fields()[2], value);
        this.age = value;
        fieldSetFlags()[2] = true;
        return this; 
      }
      
      /** Checks whether the 'age' field has been set */
      public boolean hasAge() {
        return fieldSetFlags()[2];
      }
      
      /** Clears the value of the 'age' field */
      public org.apache.hadoop.hive.hbase.avro.Employee.Builder clearAge() {
        fieldSetFlags()[2] = false;
        return this;
      }
  
      /** Gets the value of the 'gender' field */
      public org.apache.hadoop.hive.hbase.avro.Gender getGender() {
        return gender;
      }
      
      /** Sets the value of the 'gender' field */
      public org.apache.hadoop.hive.hbase.avro.Employee.Builder setGender(org.apache.hadoop.hive.hbase.avro.Gender value) {
        validate(fields()[3], value);
        this.gender = value;
        fieldSetFlags()[3] = true;
        return this; 
      }
      
      /** Checks whether the 'gender' field has been set */
      public boolean hasGender() {
        return fieldSetFlags()[3];
      }
      
      /** Clears the value of the 'gender' field */
      public org.apache.hadoop.hive.hbase.avro.Employee.Builder clearGender() {
        gender = null;
        fieldSetFlags()[3] = false;
        return this;
      }
  
      /** Gets the value of the 'contactInfo' field */
      public org.apache.hadoop.hive.hbase.avro.ContactInfo getContactInfo() {
        return contactInfo;
      }
      
      /** Sets the value of the 'contactInfo' field */
      public org.apache.hadoop.hive.hbase.avro.Employee.Builder setContactInfo(org.apache.hadoop.hive.hbase.avro.ContactInfo value) {
        validate(fields()[4], value);
        this.contactInfo = value;
        fieldSetFlags()[4] = true;
        return this; 
      }
      
      /** Checks whether the 'contactInfo' field has been set */
      public boolean hasContactInfo() {
        return fieldSetFlags()[4];
      }
      
      /** Clears the value of the 'contactInfo' field */
      public org.apache.hadoop.hive.hbase.avro.Employee.Builder clearContactInfo() {
        contactInfo = null;
        fieldSetFlags()[4] = false;
        return this;
      }
  
      @Override
      public Employee build() {
        try {
          Employee record = new Employee();
          record.employeeName = fieldSetFlags()[0] ? this.employeeName : (java.lang.CharSequence) defaultValue(fields()[0]);
          record.employeeID = fieldSetFlags()[1] ? this.employeeID : (java.lang.Long) defaultValue(fields()[1]);
          record.age = fieldSetFlags()[2] ? this.age : (java.lang.Long) defaultValue(fields()[2]);
          record.gender = fieldSetFlags()[3] ? this.gender : (org.apache.hadoop.hive.hbase.avro.Gender) defaultValue(fields()[3]);
          record.contactInfo = fieldSetFlags()[4] ? this.contactInfo : (org.apache.hadoop.hive.hbase.avro.ContactInfo) defaultValue(fields()[4]);
          return record;
        } catch (Exception e) {
          throw new org.apache.avro.AvroRuntimeException(e);
        }
      }
    }
  }
  