goog.module('primitivespecialization.IntListFromScratch$impl');

const j_l_Object = goog.require('java.lang.Object$impl');
const List = goog.require('java.util.List$impl');
const $Util = goog.require('nativebootstrap.Util$impl');

let Integer = goog.forwardDeclare('java.lang.Integer$impl');
let Iterable = goog.forwardDeclare('java.lang.Iterable$impl');
let ArrayList = goog.forwardDeclare('java.util.ArrayList$impl');
let Collection = goog.forwardDeclare('java.util.Collection$impl');
let Comparator = goog.forwardDeclare('java.util.Comparator$impl');
let Iterator = goog.forwardDeclare('java.util.Iterator$impl');
let ListIterator = goog.forwardDeclare('java.util.ListIterator$impl');
let Spliterator = goog.forwardDeclare('java.util.Spliterator$impl');
let Consumer = goog.forwardDeclare('java.util.function.Consumer$impl');
let Predicate = goog.forwardDeclare('java.util.function.Predicate$impl');
let UnaryOperator = goog.forwardDeclare('java.util.function.UnaryOperator$impl');
let Stream = goog.forwardDeclare('java.util.stream.Stream$impl');
let InternalPreconditions = goog.forwardDeclare('javaemul.internal.InternalPreconditions$impl');
let $Casts = goog.forwardDeclare('vmbootstrap.Casts$impl');

/**
 * @final
 * @implements {List<!Integer>}
 */
class IntListFromScratch extends j_l_Object {
 /** @protected @nodts */
 constructor() {
  super();
  /**@type {!ArrayList<!Integer>} @nodts*/
  this.f_contents__primitivespecialization_IntListFromScratch_;
 }
 /** @nodts @return {!IntListFromScratch} */
 static $create__() {
  let $instance = new IntListFromScratch();
  $instance.$ctor__primitivespecialization_IntListFromScratch__void();
  return $instance;
 }
 /** @nodts */
 $ctor__primitivespecialization_IntListFromScratch__void() {
  this.$ctor__java_lang_Object__void();
  this.f_contents__primitivespecialization_IntListFromScratch_ = (/**@type {!ArrayList<!Integer>}*/ (ArrayList.$create__()));
 }
 /** @nodts @return {number} */
 m_getSize__int() {
  return this.f_contents__primitivespecialization_IntListFromScratch_.size();
 }
 /** @override */
 clear() {
  this.f_contents__primitivespecialization_IntListFromScratch_.clear();
  return;
 }
 /** @override @return {boolean} */
 addAll(/** !Collection<?> */ elements) {
  return this.f_contents__primitivespecialization_IntListFromScratch_.addAll(elements);
 }
 /** @override @return {boolean} */
 addAllAtIndex(/** number */ index, /** !Collection<?> */ elements) {
  return this.f_contents__primitivespecialization_IntListFromScratch_.addAllAtIndex(index, elements);
 }
 /** @nodts */
 m_add__int__int__void(/** number */ index, /** number */ element) {
  this.f_contents__primitivespecialization_IntListFromScratch_.addAtIndex(index, Integer.m_valueOf__int__java_lang_Integer(element));
  return;
 }
 /** @nodts @return {boolean} */
 m_add__int__boolean(/** number */ element) {
  return this.f_contents__primitivespecialization_IntListFromScratch_.add(Integer.m_valueOf__int__java_lang_Integer(element));
 }
 /** @nodts @return {number} */
 m_get__int__int(/** number */ index) {
  return (/**@type {Integer}*/ ($Casts.$to(this.f_contents__primitivespecialization_IntListFromScratch_.getAtIndex(index), Integer))).m_intValue__int();
 }
 /** @override @return {boolean} */
 isEmpty() {
  return this.f_contents__primitivespecialization_IntListFromScratch_.isEmpty();
 }
 /** @override @nodts @return {!Iterator<?>} */
 m_iterator__java_util_Iterator() {
  return InternalPreconditions.m_checkNotNull__java_lang_Object__java_lang_Object(this.f_contents__primitivespecialization_IntListFromScratch_.m_iterator__java_util_Iterator());
 }
 /** @override @nodts @return {!ListIterator<!Integer>} */
 m_listIterator__java_util_ListIterator() {
  return InternalPreconditions.m_checkNotNull__java_lang_Object__java_lang_Object(this.f_contents__primitivespecialization_IntListFromScratch_.m_listIterator__java_util_ListIterator());
 }
 /** @override @nodts @return {!ListIterator<!Integer>} */
 m_listIterator__int__java_util_ListIterator(/** number */ index) {
  return InternalPreconditions.m_checkNotNull__java_lang_Object__java_lang_Object(this.f_contents__primitivespecialization_IntListFromScratch_.m_listIterator__int__java_util_ListIterator(index));
 }
 /** @override @return {boolean} */
 removeAll(/** !Collection<?> */ elements) {
  return this.f_contents__primitivespecialization_IntListFromScratch_.removeAll(elements);
 }
 /** @nodts @return {boolean} */
 m_remove__java_lang_Integer__boolean(/** Integer */ element) {
  return this.f_contents__primitivespecialization_IntListFromScratch_.remove(element);
 }
 /** @nodts @return {number} */
 m_lastIndexOf__int__int(/** number */ element) {
  return this.f_contents__primitivespecialization_IntListFromScratch_.lastIndexOf(Integer.m_valueOf__int__java_lang_Integer(element));
 }
 /** @nodts @return {number} */
 m_removeAt__int__int(/** number */ element) {
  return (/**@type {Integer}*/ ($Casts.$to(this.f_contents__primitivespecialization_IntListFromScratch_.removeAtIndex(element), Integer))).m_intValue__int();
 }
 /** @override @return {!List<!Integer>} */
 subList(/** number */ fromIndex, /** number */ toIndex) {
  return InternalPreconditions.m_checkNotNull__java_lang_Object__java_lang_Object(this.f_contents__primitivespecialization_IntListFromScratch_.subList(fromIndex, toIndex));
 }
 /** @nodts @return {number} */
 m_set__int__int__int(/** number */ index, /** number */ element) {
  return (/**@type {Integer}*/ ($Casts.$to(this.f_contents__primitivespecialization_IntListFromScratch_.setAtIndex(index, Integer.m_valueOf__int__java_lang_Integer(element)), Integer))).m_intValue__int();
 }
 /** @override @return {boolean} */
 retainAll(/** !Collection<?> */ elements) {
  return this.f_contents__primitivespecialization_IntListFromScratch_.retainAll(elements);
 }
 /** @nodts @return {number} */
 m_indexOf__int__int(/** number */ element) {
  return this.f_contents__primitivespecialization_IntListFromScratch_.indexOf(Integer.m_valueOf__int__java_lang_Integer(element));
 }
 /** @override @return {boolean} */
 containsAll(/** !Collection<?> */ elements) {
  return this.f_contents__primitivespecialization_IntListFromScratch_.containsAll(elements);
 }
 /** @nodts @return {boolean} */
 m_contains__int__boolean(/** number */ element) {
  return this.f_contents__primitivespecialization_IntListFromScratch_.contains(Integer.m_valueOf__int__java_lang_Integer(element));
 }
 /** @final @override @return {number} */
 size() {
  return this.m_getSize__int();
 }
 /** @final @override @return {boolean} */
 remove(/** * */ element) {
  if (!Integer.$isInstance(element)) {
   return false;
  }
  return this.m_remove__java_lang_Integer__boolean(Integer.m_valueOf__int__java_lang_Integer((/**@type {!Integer}*/ ($Casts.$to(element, Integer))).m_intValue__int()));
 }
 /** @final @override @return {number} */
 lastIndexOf(/** * */ element) {
  if (!Integer.$isInstance(element)) {
   return -1;
  }
  return this.m_lastIndexOf__int__int((/**@type {!Integer}*/ ($Casts.$to(element, Integer))).m_intValue__int());
 }
 /** @nodts @return {number} */
 m_remove__int__int(/** number */ index) {
  return this.m_removeAt__int__int(index);
 }
 /** @final @override @return {number} */
 indexOf(/** * */ element) {
  if (!Integer.$isInstance(element)) {
   return -1;
  }
  return this.m_indexOf__int__int((/**@type {!Integer}*/ ($Casts.$to(element, Integer))).m_intValue__int());
 }
 /** @final @override @return {boolean} */
 contains(/** * */ element) {
  if (!Integer.$isInstance(element)) {
   return false;
  }
  return this.m_contains__int__boolean((/**@type {!Integer}*/ ($Casts.$to(element, Integer))).m_intValue__int());
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} */
 m_forEach__java_util_function_Consumer__void(/** Consumer<?> */ arg0) {
  Iterable.m_forEach__$default__java_lang_Iterable__java_util_function_Consumer__void(this, arg0);
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @return {!Spliterator<!Integer>} */
 m_spliterator__java_util_Spliterator() {
  return /**@type {!Spliterator<!Integer>}*/ (List.m_spliterator__$default__java_util_List__java_util_Spliterator(this));
 }
 //Bridge method.
 /** @override @suppress{visibility} @return {boolean} */
 add(/** !Integer */ arg0) {
  return this.m_add__int__boolean((/**@type {!Integer}*/ ($Casts.$to(arg0, Integer))).m_intValue__int());
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @return {!Stream<!Integer>} */
 m_parallelStream__java_util_stream_Stream() {
  return /**@type {!Stream<!Integer>}*/ (Collection.m_parallelStream__$default__java_util_Collection__java_util_stream_Stream(this));
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @return {boolean} */
 m_removeIf__java_util_function_Predicate__boolean(/** !Predicate<?> */ arg0) {
  return Collection.m_removeIf__$default__java_util_Collection__java_util_function_Predicate__boolean(this, arg0);
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @return {!Stream<!Integer>} */
 m_stream__java_util_stream_Stream() {
  return /**@type {!Stream<!Integer>}*/ (Collection.m_stream__$default__java_util_Collection__java_util_stream_Stream(this));
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @return {Array<*>} */
 m_toArray__arrayOf_java_lang_Object() {
  return Collection.m_toArray__$default__java_util_Collection__arrayOf_java_lang_Object(this);
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @template T @return {Array<T>} */
 m_toArray__arrayOf_java_lang_Object__arrayOf_java_lang_Object(/** Array<T> */ arg0) {
  return Collection.m_toArray__$default__java_util_Collection__arrayOf_java_lang_Object__arrayOf_java_lang_Object(this, arg0);
 }
 //Default method forwarding stub.
 /** @override @suppress{visibility} @return {Array<!Integer>} */
 toArray() {
  return /**@type {Array<!Integer>}*/ (Collection.m__private_jsToArray____$default__java_util_Collection__arrayOf_java_lang_Object(this));
 }
 //Bridge method.
 /** @override @suppress{visibility} */
 addAtIndex(/** number */ arg0, /** !Integer */ arg1) {
  this.m_add__int__int__void(arg0, (/**@type {!Integer}*/ ($Casts.$to(arg1, Integer))).m_intValue__int());
 }
 //Bridge method.
 /** @override @suppress{visibility} @return {!Integer} */
 getAtIndex(/** number */ arg0) {
  return Integer.m_valueOf__int__java_lang_Integer(this.m_get__int__int(arg0));
 }
 //Bridge method.
 /** @override @suppress{visibility} @return {!Integer} */
 removeAtIndex(/** number */ arg0) {
  return Integer.m_valueOf__int__java_lang_Integer(this.m_remove__int__int(arg0));
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} */
 m_replaceAll__java_util_function_UnaryOperator__void(/** !UnaryOperator<!Integer> */ arg0) {
  List.m_replaceAll__$default__java_util_List__java_util_function_UnaryOperator__void(this, arg0);
 }
 //Bridge method.
 /** @override @suppress{visibility} @return {!Integer} */
 setAtIndex(/** number */ arg0, /** !Integer */ arg1) {
  return Integer.m_valueOf__int__java_lang_Integer(this.m_set__int__int__int(arg0, (/**@type {!Integer}*/ ($Casts.$to(arg1, Integer))).m_intValue__int()));
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} */
 m_sort__java_util_Comparator__void(/** Comparator<?> */ arg0) {
  List.m_sort__$default__java_util_List__java_util_Comparator__void(this, arg0);
 }
 /** @nodts */
 static $clinit() {
  IntListFromScratch.$clinit = () =>{};
  IntListFromScratch.$loadModules();
  j_l_Object.$clinit();
  List.$clinit();
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof IntListFromScratch;
 }
 
 /** @nodts */
 static $loadModules() {
  Integer = goog.module.get('java.lang.Integer$impl');
  Iterable = goog.module.get('java.lang.Iterable$impl');
  ArrayList = goog.module.get('java.util.ArrayList$impl');
  Collection = goog.module.get('java.util.Collection$impl');
  InternalPreconditions = goog.module.get('javaemul.internal.InternalPreconditions$impl');
  $Casts = goog.module.get('vmbootstrap.Casts$impl');
 }
}
List.$markImplementor(IntListFromScratch);
$Util.$setClassMetadata(IntListFromScratch, 'primitivespecialization.IntListFromScratch');

exports = IntListFromScratch;

//# sourceMappingURL=IntListFromScratch.js.map
