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
158 lines (138 loc) • 2.68 kB
JavaScript
import Collection from './Collection'
// import Iterator from './Iterator'
import NoSuchElementException from './NoSuchElementException'
import OperationNotSupported from './OperationNotSupported'
import SortedSet from './SortedSet'
/**
* @see http://download.oracle.com/javase/6/docs/api/java/util/TreeSet.html
*
* @extends {SortedSet}
* @constructor
* @private
*/
export default function TreeSet () {
/**
* @type {Array}
* @private
*/
this.array_ = []
if (arguments[0] instanceof Collection) {
this.addAll(arguments[0])
}
};
TreeSet.prototype = new SortedSet()
/**
* @override
*/
TreeSet.prototype.contains = function (o) {
for (var i = 0, len = this.array_.length; i < len; i++) {
var e = this.array_[i]
if (e['compareTo'](o) === 0) {
return true
}
}
return false
}
/**
* @override
*/
TreeSet.prototype.add = function (o) {
if (this.contains(o)) {
return false
}
for (var i = 0, len = this.array_.length; i < len; i++) {
var e = this.array_[i]
if (e['compareTo'](o) === 1) {
this.array_.splice(i, 0, o)
return true
}
}
this.array_.push(o)
return true
}
/**
* @override
*/
TreeSet.prototype.addAll = function (c) {
for (var i = c.iterator(); i.hasNext();) {
this.add(i.next())
}
return true
}
/**
* @override
*/
TreeSet.prototype.remove = function (e) {
throw new OperationNotSupported()
}
/**
* @override
*/
TreeSet.prototype.size = function () {
return this.array_.length
}
/**
* @override
*/
TreeSet.prototype.isEmpty = function () {
return this.array_.length === 0
}
/**
* @override
*/
TreeSet.prototype.toArray = function () {
var array = []
for (var i = 0, len = this.array_.length; i < len; i++) {
array.push(this.array_[i])
}
return array
}
/**
* @override
*/
TreeSet.prototype.iterator = function () {
return new Iterator_(this)
}
/**
* @extends {javascript.util.Iterator}
* @param {javascript.util.TreeSet} treeSet
* @constructor
* @private
*/
var Iterator_ = function (treeSet) {
/**
* @type {javascript.util.TreeSet}
* @private
*/
this.treeSet_ = treeSet
/**
* @type {number}
* @private
*/
this.position_ = 0
}
/**
* @override
*/
Iterator_.prototype.next = function () {
if (this.position_ === this.treeSet_.size()) {
throw new NoSuchElementException()
}
return this.treeSet_.array_[this.position_++]
}
/**
* @override
*/
Iterator_.prototype.hasNext = function () {
if (this.position_ < this.treeSet_.size()) {
return true
} else {
return false
}
}
/**
* @override
*/
Iterator_.prototype.remove = function () {
throw new OperationNotSupported()
}