code: public Long getId() {
          if (this.genericRecordAttributes.getId() != null) {
              return this.genericRecordAttributes.getId();
          } else if (this.typeARecordAttributes.getId() != null) {
              return this.typeARecordAttributes.getId();
          } else if (this.typeAAAARecordAttributes.getId() != null) {
              return this.typeAAAARecordAttributes.getId();
          } else if (this.typeNSRecordAttributes.getId() != null) {
              return this.typeNSRecordAttributes.getId();
          } else if (this.typeSOARecordAttributes.getId() != null) {
              return this.typeSOARecordAttributes.getId();
          } else if (this.typeMXRecordAttributes.getId() != null) {
              return this.typeMXRecordAttributes.getId();
          } else if (this.typePTRRecordAttributes.getId() != null) {
              return this.typePTRRecordAttributes.getId();
          } else if (this.typeTXTRecordAttributes.getId() != null) {
              return this.typeTXTRecordAttributes.getId();
          } else {
              return null;
          }
      }
docs: FIXME Better way of accessing the variables?