node-red-contrib-tak-registration
Version:
A Node-RED node to register to TAK and to help wrap files as datapackages to send to TAK
110 lines (88 loc) • 2.08 kB
JavaScript
import Collection from './Collection'
import IndexOutOfBoundsException from '../lang/IndexOutOfBoundsException'
import List from './List'
import NoSuchElementException from './NoSuchElementException'
/**
* @see http://download.oracle.com/javase/6/docs/api/java/util/ArrayList.html
*/
export default class ArrayList extends List {
constructor(o) {
super()
this.array = []
if (o instanceof Collection) this.addAll(o)
}
get interfaces_() {
return [List, Collection]
}
ensureCapacity() { }
add(e) {
if (arguments.length === 1)
this.array.push(e)
else
this.array.splice(arguments[0], 0, arguments[1])
return true
}
clear() {
this.array = []
}
addAll(c) {
for (const e of c)
this.array.push(e)
}
set(index, element) {
const oldElement = this.array[index]
this.array[index] = element
return oldElement
}
iterator() {
return new Iterator(this)
}
get(index) {
if (index < 0 || index >= this.size())
throw new IndexOutOfBoundsException()
return this.array[index]
}
isEmpty() {
return this.array.length === 0
}
sort(comparator) {
if (comparator)
this.array.sort((a, b) => comparator.compare(a, b))
else this.array.sort()
}
size() {
return this.array.length
}
toArray() {
return this.array.slice()
}
remove(o) {
for (let i = 0, len = this.array.length; i < len; i++)
if (this.array[i] === o)
return !!this.array.splice(i, 1)
return false
}
[Symbol.iterator]() {
return this.array.values()
}
}
class Iterator {
constructor(arrayList) {
this.arrayList = arrayList
this.position = 0
}
next() {
if (this.position === this.arrayList.size())
throw new NoSuchElementException()
return this.arrayList.get(this.position++)
}
hasNext() {
return this.position < this.arrayList.size()
}
set(element) {
return this.arrayList.set(this.position - 1, element)
}
remove() {
this.arrayList.remove(this.arrayList.get(this.position))
}
}