goog.module('autovalue.SimpleAutoValue$impl');

const reflect = goog.require('goog.reflect');
const ValueType = goog.require('javaemul.internal.ValueType$impl');
const $Util = goog.require('nativebootstrap.Util$impl');

let Builder = goog.forwardDeclare('autovalue.AutoValue_EmptyAutoValue.Builder$impl');
let EmptyAutoValue = goog.forwardDeclare('autovalue.EmptyAutoValue$impl');
let Objects = goog.forwardDeclare('java.util.Objects$impl');
let $Arrays = goog.forwardDeclare('vmbootstrap.Arrays$impl');
let $$int = goog.forwardDeclare('vmbootstrap.primitives.$int$impl');

class SimpleAutoValue extends ValueType {
 /** @protected @nodts */
 constructor() {
  super();
  /**@type {number} @nodts*/
  this.f_intField__autovalue_SimpleAutoValue_ = 0;
  /**@type {EmptyAutoValue} @nodts*/
  this.f_field1__autovalue_SimpleAutoValue_;
  /**@type {!EmptyAutoValue} @nodts*/
  this.f_field2__autovalue_SimpleAutoValue_;
  /**@type {number} @nodts*/
  this.f_intField__autovalue_AutoValue_SimpleAutoValue_ = 0;
  /**@type {boolean} @nodts*/
  this.f_booleanField__autovalue_AutoValue_SimpleAutoValue_ = false;
  /**@type {?string} @nodts*/
  this.f_stringField__autovalue_AutoValue_SimpleAutoValue_;
  /**@type {?number} @nodts*/
  this.f_doubleField__autovalue_AutoValue_SimpleAutoValue_;
  /**@type {?number} @nodts*/
  this.f_nullableField__autovalue_AutoValue_SimpleAutoValue_;
  /**@type {Array<number>} @nodts*/
  this.f_arrayField__autovalue_AutoValue_SimpleAutoValue_;
 }
 /** @nodts @return {SimpleAutoValue} */
 static m_create__autovalue_SimpleAutoValue() {
  SimpleAutoValue.$clinit();
  return SimpleAutoValue.$create__int__boolean__java_lang_String__java_lang_Double__java_lang_Double__arrayOf_int(42, true, 'text', 43, 44, /**@type {!Array<number>}*/ ($Arrays.$stampType([45], $$int)));
 }
 /** @nodts @return {Array<SimpleAutoValue>} */
 static m_castAndInstanceOf__java_lang_Object__arrayOf_autovalue_SimpleAutoValue(/** * */ o) {
  SimpleAutoValue.$clinit();
  return $Arrays.$instanceIsOfType(o, SimpleAutoValue, 1) ? /**@type {Array<SimpleAutoValue>}*/ (o) : null;
 }
 /** @nodts @return {!SimpleAutoValue} */
 static $create__int__boolean__java_lang_String__java_lang_Double__java_lang_Double__arrayOf_int(/** number */ intField, /** boolean */ booleanField, /** ?string */ stringField, /** ?number */ doubleField, /** ?number */ nullableField, /** Array<number> */ arrayField) {
  SimpleAutoValue.$clinit();
  let $instance = new SimpleAutoValue();
  $instance.$ctor__autovalue_SimpleAutoValue__int__boolean__java_lang_String__java_lang_Double__java_lang_Double__arrayOf_int__void(intField, booleanField, stringField, doubleField, nullableField, arrayField);
  return $instance;
 }
 /** @nodts */
 $ctor__autovalue_SimpleAutoValue__int__boolean__java_lang_String__java_lang_Double__java_lang_Double__arrayOf_int__void(/** number */ intField, /** boolean */ booleanField, /** ?string */ stringField, /** ?number */ doubleField, /** ?number */ nullableField, /** Array<number> */ arrayField) {
  this.$ctor__javaemul_internal_ValueType__void();
  this.$init__void_$p_autovalue_SimpleAutoValue();
  this.f_intField__autovalue_AutoValue_SimpleAutoValue_ = intField;
  this.f_booleanField__autovalue_AutoValue_SimpleAutoValue_ = booleanField;
  Objects.m_requireNonNull__java_lang_Object__java_lang_Object(stringField);
  this.f_stringField__autovalue_AutoValue_SimpleAutoValue_ = stringField;
  Objects.m_requireNonNull__java_lang_Object__java_lang_Object(doubleField);
  this.f_doubleField__autovalue_AutoValue_SimpleAutoValue_ = doubleField;
  this.f_nullableField__autovalue_AutoValue_SimpleAutoValue_ = nullableField;
  Objects.m_requireNonNull__java_lang_Object__java_lang_Object(arrayField);
  this.f_arrayField__autovalue_AutoValue_SimpleAutoValue_ = arrayField;
  $J2CL_PRESERVE$(this.f_intField__autovalue_AutoValue_SimpleAutoValue_, this.f_booleanField__autovalue_AutoValue_SimpleAutoValue_, this.f_stringField__autovalue_AutoValue_SimpleAutoValue_, this.f_doubleField__autovalue_AutoValue_SimpleAutoValue_, this.f_nullableField__autovalue_AutoValue_SimpleAutoValue_, this.f_arrayField__autovalue_AutoValue_SimpleAutoValue_);
 }
 /** @nodts @return {number} */
 m_getIntField__int() {
  return this.f_intField__autovalue_AutoValue_SimpleAutoValue_;
 }
 /** @nodts @return {boolean} */
 m_getBooleanField__boolean() {
  return this.f_booleanField__autovalue_AutoValue_SimpleAutoValue_;
 }
 /** @nodts @return {?string} */
 m_getStringField__java_lang_String() {
  return this.f_stringField__autovalue_AutoValue_SimpleAutoValue_;
 }
 /** @nodts @return {?number} */
 m_getDoubleField__java_lang_Double() {
  return this.f_doubleField__autovalue_AutoValue_SimpleAutoValue_;
 }
 /** @nodts @return {?number} */
 m_getNullableField__java_lang_Double() {
  return this.f_nullableField__autovalue_AutoValue_SimpleAutoValue_;
 }
 /** @nodts @return {Array<number>} */
 m_getArrayField__arrayOf_int() {
  return this.f_arrayField__autovalue_AutoValue_SimpleAutoValue_;
 }
 /** @private @nodts */
 $init__void_$p_autovalue_SimpleAutoValue() {
  this.f_field2__autovalue_SimpleAutoValue_ = Builder.$create__().m_build__autovalue_EmptyAutoValue();
 }
 /** @nodts */
 static $clinit() {
  SimpleAutoValue.$clinit = () =>{};
  SimpleAutoValue.$loadModules();
  ValueType.$clinit();
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof SimpleAutoValue;
 }
 
 /** @nodts */
 static $loadModules() {
  Builder = goog.module.get('autovalue.AutoValue_EmptyAutoValue.Builder$impl');
  Objects = goog.module.get('java.util.Objects$impl');
  $Arrays = goog.module.get('vmbootstrap.Arrays$impl');
  $$int = goog.module.get('vmbootstrap.primitives.$int$impl');
 }
}
SimpleAutoValue.prototype.$excluded_fields = /**@pureOrBreakMyCode*/ [reflect.objectProperty('f_intField__autovalue_SimpleAutoValue_', SimpleAutoValue), reflect.objectProperty('f_field1__autovalue_SimpleAutoValue_', SimpleAutoValue), reflect.objectProperty('f_field2__autovalue_SimpleAutoValue_', SimpleAutoValue)];
$Util.$setClassMetadata(SimpleAutoValue, 'autovalue.SimpleAutoValue');

exports = SimpleAutoValue;

//# sourceMappingURL=SimpleAutoValue.js.map
