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

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

let Objects = goog.forwardDeclare('java.util.Objects$impl');

/**
 * @implements {SomeInterface}
 */
class ImplementingAutoValue extends ValueType {
 /** @protected @nodts */
 constructor() {
  super();
  /**@type {?string} @nodts*/
  this.f_foo__autovalue_AutoValue_ImplementingAutoValue_;
 }
 /** @nodts @return {!ImplementingAutoValue} */
 static $create__() {
  ImplementingAutoValue.$clinit();
  let $instance = new ImplementingAutoValue();
  $instance.$ctor__autovalue_ImplementingAutoValue__void();
  return $instance;
 }
 /** @nodts */
 $ctor__autovalue_ImplementingAutoValue__void() {
  this.$ctor__javaemul_internal_ValueType__void();
 }
 /** @nodts @return {!ImplementingAutoValue} */
 static $create__java_lang_String(/** ?string */ foo) {
  ImplementingAutoValue.$clinit();
  let $instance = new ImplementingAutoValue();
  $instance.$ctor__autovalue_ImplementingAutoValue__java_lang_String__void(foo);
  return $instance;
 }
 /** @nodts */
 $ctor__autovalue_ImplementingAutoValue__java_lang_String__void(/** ?string */ foo) {
  this.$ctor__autovalue_ImplementingAutoValue__void();
  Objects.m_requireNonNull__java_lang_Object__java_lang_Object(foo);
  this.f_foo__autovalue_AutoValue_ImplementingAutoValue_ = foo;
  $J2CL_PRESERVE$(this.f_foo__autovalue_AutoValue_ImplementingAutoValue_);
 }
 /** @override @return {?string} */
 getFoo() {
  return this.f_foo__autovalue_AutoValue_ImplementingAutoValue_;
 }
 /** @nodts */
 static $clinit() {
  ImplementingAutoValue.$clinit = () =>{};
  ImplementingAutoValue.$loadModules();
  ValueType.$clinit();
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof ImplementingAutoValue;
 }
 
 /** @nodts */
 static $loadModules() {
  Objects = goog.module.get('java.util.Objects$impl');
 }
}
SomeInterface.$markImplementor(ImplementingAutoValue);
$Util.$setClassMetadata(ImplementingAutoValue, 'autovalue.ImplementingAutoValue');

exports = ImplementingAutoValue;

//# sourceMappingURL=ImplementingAutoValue.js.map
