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

const AbstractCollection = goog.require('java.util.AbstractCollection$impl');
const $Util = goog.require('nativebootstrap.Util$impl');

let SimpleAutoValue = goog.forwardDeclare('autovalue.SimpleAutoValue$impl');
let List = goog.forwardDeclare('java.util.List$impl');
let $Equality = goog.forwardDeclare('nativebootstrap.Equality$impl');
let $Casts = goog.forwardDeclare('vmbootstrap.Casts$impl');

/**
 * @abstract
 * @extends {AbstractCollection<SimpleAutoValue>}
 */
class GenericType extends AbstractCollection {
 /** @protected @nodts */
 constructor() {
  super();
 }
 /** @nodts */
 $ctor__autovalue_SimpleAutoValue_GenericType__void() {
  this.$ctor__java_util_AbstractCollection__void();
 }
 /** @nodts @template T @return {T} */
 m_foo_pp_autovalue__java_util_List__java_util_List__autovalue_SimpleAutoValue(/** List<?> */ o1, /** List<SimpleAutoValue> */ o2) {
  this.m_foo_pp_autovalue__java_util_List__java_util_List__autovalue_SimpleAutoValue(null, null).m_getArrayField__arrayOf_int();
  let o = /**@type {SimpleAutoValue}*/ ($Casts.$to(o1.getAtIndex(0), SimpleAutoValue));
  return /**@type {?}*/ (null);
 }
 /** @nodts @return {boolean} */
 m_contains__autovalue_SimpleAutoValue__boolean(/** SimpleAutoValue */ o) {
  return super.contains(/**@type {?}*/ (o));
 }
 /** @final @override @return {boolean} */
 contains(/** * */ element) {
  if (!($Equality.$same(element, null) || SimpleAutoValue.$isInstance(element))) {
   return false;
  }
  return this.m_contains__autovalue_SimpleAutoValue__boolean(/**@type {SimpleAutoValue}*/ (element));
 }
 /** @nodts @return {boolean} */
 m_remove__autovalue_SimpleAutoValue__boolean(/** SimpleAutoValue */ o) {
  return super.remove(/**@type {?}*/ (o));
 }
 /** @final @override @return {boolean} */
 remove(/** * */ element) {
  if (!($Equality.$same(element, null) || SimpleAutoValue.$isInstance(element))) {
   return false;
  }
  return this.m_remove__autovalue_SimpleAutoValue__boolean(/**@type {SimpleAutoValue}*/ (element));
 }
 /** @abstract @nodts @return {number} */
 m_getSize__int() {}
 /** @final @override @return {number} */
 size() {
  return this.m_getSize__int();
 }
 /** @nodts */
 static $clinit() {
  GenericType.$clinit = () =>{};
  GenericType.$loadModules();
  AbstractCollection.$clinit();
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof GenericType;
 }
 
 /** @nodts */
 static $loadModules() {
  SimpleAutoValue = goog.module.get('autovalue.SimpleAutoValue$impl');
  $Equality = goog.module.get('nativebootstrap.Equality$impl');
  $Casts = goog.module.get('vmbootstrap.Casts$impl');
 }
}
$Util.$setClassMetadata(GenericType, 'autovalue.SimpleAutoValue$GenericType');

exports = GenericType;

//# sourceMappingURL=SimpleAutoValue$GenericType.js.map
